package mockclient import ( "reflect" "testing" "golang.org/x/net/context" "github.com/docker/engine-api/types" "github.com/docker/swarm/swarmclient" "github.com/stretchr/testify/mock" ) func TestMock(t *testing.T) { mockClient := NewMockClient() mockClient.On("ServerVersion", mock.Anything).Return(types.Version{Version: "foo"}, nil).Once() v, err := mockClient.ServerVersion(context.Background()) if err != nil { t.Fatal(err) } if v.Version != "foo" { t.Fatal(v) } mockClient.Mock.AssertExpectations(t) } func TestMockInterface(t *testing.T) { iface := reflect.TypeOf((*swarmclient.SwarmAPIClient)(nil)).Elem() mockClient := NewMockClient() if !reflect.TypeOf(mockClient).Implements(iface) { t.Fatalf("Mock does not implement the SwarmAPIClient interface") } }