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  }