github.com/k0marov/go-socnet@v0.0.0-20220715154813-90d07867c782/core/abstract/ownable/service/service_test.go (about) 1 package service_test 2 3 import ( 4 "github.com/k0marov/go-socnet/core/abstract/ownable/service" 5 "github.com/k0marov/go-socnet/core/general/client_errors" 6 "github.com/k0marov/go-socnet/core/general/core_err" 7 . "github.com/k0marov/go-socnet/core/helpers/test_helpers" 8 "testing" 9 ) 10 11 func TestOwnerGetter(t *testing.T) { 12 target := RandomString() 13 owner := RandomString() 14 15 getOwner := func(targetId string) (string, error) { 16 if targetId == target { 17 return owner, nil 18 } 19 panic("unexpected args") 20 } 21 22 t.Run("error case - getting owner returns ErrNotFound", func(t *testing.T) { 23 getOwner := func(string) (string, error) { 24 return "", core_err.ErrNotFound 25 } 26 _, err := service.NewOwnerGetter(getOwner)(target) 27 AssertError(t, err, client_errors.NotFound) 28 }) 29 t.Run("error case - getting owner returns some other error", func(t *testing.T) { 30 getOwner := func(string) (string, error) { 31 return "", RandomError() 32 } 33 _, err := service.NewOwnerGetter(getOwner)(target) 34 AssertSomeError(t, err) 35 }) 36 37 t.Run("happy case", func(t *testing.T) { 38 gotOwner, err := service.NewOwnerGetter(getOwner)(target) 39 AssertNoError(t, err) 40 Assert(t, gotOwner, owner, "returned owner") 41 }) 42 43 }