Files
pinniped/internal/setutil/setutil_test.go
2024-05-22 21:21:45 -05:00

35 lines
1.1 KiB
Go

// Copyright 2024 the Pinniped contributors. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
package setutil
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestCaseInsensitiveSet(t *testing.T) {
var nilSet *CaseInsensitiveSet
require.True(t, nilSet.Empty())
require.False(t, nilSet.HasAnyIgnoringCase([]string{"a", "b"}))
require.False(t, nilSet.HasAnyIgnoringCase(nil))
require.False(t, nilSet.ContainsIgnoringCase("a"))
require.False(t, nilSet.ContainsIgnoringCase("a"))
emptySet := NewCaseInsensitiveSet()
require.True(t, emptySet.Empty())
require.False(t, emptySet.HasAnyIgnoringCase([]string{"a", "b"}))
require.False(t, emptySet.HasAnyIgnoringCase(nil))
require.False(t, emptySet.ContainsIgnoringCase("a"))
require.False(t, emptySet.ContainsIgnoringCase("a"))
set := NewCaseInsensitiveSet("A", "B", "c")
require.False(t, set.Empty())
require.False(t, set.HasAnyIgnoringCase([]string{"x", "y"}))
require.True(t, set.HasAnyIgnoringCase([]string{"a", "x"}))
require.False(t, set.HasAnyIgnoringCase(nil))
require.False(t, set.ContainsIgnoringCase("x"))
require.True(t, set.ContainsIgnoringCase("a"))
}