auth/internal/client/usecase/client_ucase_test.go

57 lines
1.2 KiB
Go

package usecase_test
import (
"context"
"errors"
"reflect"
"testing"
repository "source.toby3d.me/toby3d/auth/internal/client/repository/memory"
"source.toby3d.me/toby3d/auth/internal/client/usecase"
"source.toby3d.me/toby3d/auth/internal/domain"
)
func TestDiscovery(t *testing.T) {
t.Parallel()
testClient := domain.TestClient(t)
clients := repository.NewMemoryClientRepository()
if err := clients.Create(context.Background(), *testClient); err != nil {
t.Fatal(err)
}
for _, tc := range []struct {
name string
in *domain.Client
out *domain.Client
expError error
}{{
name: "default",
in: testClient,
out: testClient,
}} {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
result, err := usecase.NewClientUseCase(clients).
Discovery(context.Background(), tc.in.ID)
if tc.expError != nil && !errors.Is(err, tc.expError) {
t.Errorf("Discovery(%s) = %+v, want %+v", tc.in.ID, err, tc.expError)
return
}
if tc.expError == nil && err != nil {
t.Fatal(err)
}
if !reflect.DeepEqual(result, tc.out) {
t.Errorf("Discovery(%s) = %+v, want %+v", tc.in.ID, result, tc.out)
}
})
}
}