mirror of
https://github.com/fatedier/frp.git
synced 2025-04-22 14:21:26 +00:00
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package util
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestInSlice(t *testing.T) {
|
|
require := require.New(t)
|
|
require.True(InSlice(1, []int{1, 2, 3}))
|
|
require.False(InSlice(0, []int{1, 2, 3}))
|
|
require.True(InSlice("foo", []string{"foo", "bar"}))
|
|
require.False(InSlice("not exist", []string{"foo", "bar"}))
|
|
}
|
|
|
|
type testStructA struct {
|
|
Name string
|
|
Age int
|
|
}
|
|
|
|
func TestInSliceAny(t *testing.T) {
|
|
require := require.New(t)
|
|
|
|
a := testStructA{Name: "foo", Age: 20}
|
|
b := testStructA{Name: "foo", Age: 30}
|
|
c := testStructA{Name: "bar", Age: 20}
|
|
|
|
equalFn := func(o, p testStructA) bool {
|
|
return o.Name == p.Name
|
|
}
|
|
require.True(InSliceAny(a, []testStructA{b, c}, equalFn))
|
|
require.False(InSliceAny(c, []testStructA{a, b}, equalFn))
|
|
}
|
|
|
|
func TestInSliceAnyFunc(t *testing.T) {
|
|
require := require.New(t)
|
|
|
|
a := testStructA{Name: "foo", Age: 20}
|
|
b := testStructA{Name: "foo", Age: 30}
|
|
c := testStructA{Name: "bar", Age: 20}
|
|
|
|
equalFn := func(o, p testStructA) bool {
|
|
return o.Name == p.Name
|
|
}
|
|
testStructAInSlice := InSliceAnyFunc(equalFn)
|
|
require.True(testStructAInSlice(a, []testStructA{b, c}))
|
|
require.False(testStructAInSlice(c, []testStructA{a, b}))
|
|
}
|