Files
gomockctx/any_test.go

156 lines
2.2 KiB
Go

package gomockctx
import (
"context"
"testing"
"github.com/golang/mock/gomock"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestAny(t *testing.T) {
tests := []struct {
name string
x interface{}
want bool
}{
{
name: "nil",
x: nil,
want: false,
},
{
name: "empty string",
x: "",
want: false,
},
{
name: "string",
x: "foo bar",
want: false,
},
{
name: "int",
x: 42,
want: false,
},
{
name: "int8",
x: int8(64),
want: false,
},
{
name: "int16",
x: int16(1024),
want: false,
},
{
name: "int32",
x: int32(1123456789),
want: false,
},
{
name: "int64",
x: int64(16123456789),
want: false,
},
{
name: "uint",
x: uint(616),
want: false,
},
{
name: "uint8",
x: uint8(64),
want: false,
},
{
name: "uint16",
x: uint16(1024),
want: false,
},
{
name: "uint32",
x: uint32(1123456789),
want: false,
},
{
name: "uint64",
x: uint64(16123456789),
want: false,
},
{
name: "byte",
x: byte('A'),
want: false,
},
{
name: "rune",
x: rune('A'),
want: false,
},
{
name: "float32",
x: float32(6.16),
want: false,
},
{
name: "float64",
x: float64(6.16),
want: false,
},
{
name: "bool",
x: true,
want: false,
},
{
name: "slice",
x: []string{"foo", "bar"},
want: false,
},
{
name: "array",
x: [2]string{"foo", "bar"},
want: false,
},
{
name: "channel",
x: make(chan bool),
want: false,
},
{
name: "func",
x: func() {},
want: false,
},
{
name: "context.Background()",
x: context.Background(),
want: true,
},
{
name: "context.TODO()",
x: context.TODO(),
want: true,
},
{
name: "custom context",
x: context.WithValue(context.Background(), ctxKey, "foo"),
want: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
m := Any()
require.Implements(t, (*gomock.Matcher)(nil), m)
got := m.Matches(tt.x)
assert.Equal(t, tt.want, got)
assert.Equal(t, "is a context.Context", m.String())
})
}
}