42 lines
810 B
Go
42 lines
810 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func TestUtilEqualSliceString(t *testing.T) {
|
|
cases := []struct {
|
|
a, b []string
|
|
expected bool
|
|
}{
|
|
// Equal cases
|
|
{nil, nil, true},
|
|
{nil, []string{}, true},
|
|
{[]string{}, nil, true},
|
|
{[]string{"a"}, []string{"a"}, true},
|
|
// Inequal cases
|
|
{nil, []string{"b"}, false},
|
|
{[]string{"a"}, nil, false},
|
|
{[]string{"a"}, []string{"b"}, false},
|
|
{[]string{"a"}, []string{"a", "b"}, false},
|
|
{[]string{"a", "b"}, []string{"b"}, false},
|
|
}
|
|
|
|
for _, c := range cases {
|
|
c := c
|
|
|
|
t.Run(fmt.Sprintf("%v %v", c.a, c.b), func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
actual := EqualSliceString(c.a, c.b)
|
|
if actual != c.expected {
|
|
t.Errorf(
|
|
"EqualSliceString(%v, %v), expected=%v actual=%v",
|
|
c.a, c.b, c.expected, actual,
|
|
)
|
|
}
|
|
})
|
|
}
|
|
}
|