diff --git a/param/benefactor/kind_box_req/get.go b/param/benefactor/kind_box_req/get.go index eb1b1153..d7d063be 100644 --- a/param/benefactor/kind_box_req/get.go +++ b/param/benefactor/kind_box_req/get.go @@ -1,8 +1,8 @@ package benefactorkindboxreqparam type KindBoxReqGetRequest struct { - BenefactorID uint - KindBoxReqID uint + BenefactorID uint `json:"-"` + KindBoxReqID uint `param:"id"` } type KindBoxReqGetResponse struct { diff --git a/service/service.go b/service/service.go index 5ed3fe2c..5ee8ba7a 100644 --- a/service/service.go +++ b/service/service.go @@ -104,11 +104,11 @@ func New(cfg config.Config, db *mysql.DB, rds *redis.Adapter, smsAdapter smscont BenefactorVld = benefactorvalidator.New(benefactorRepo) BenefactorSvc = benefactorservice.New(cfg.BenefactorSvc, redisOtp, smsAdapter, BenefactorAuthSvc, benefactorRepo, BenefactorVld) - BenefactorAddressVld = benefactoraddressvalidator.New(BenefactorSvc, addressRepo) + BenefactorAddressVld = benefactoraddressvalidator.New(addressRepo) BenefactorAddressSvc = benefactoraddressservice.New(addressRepo, BenefactorAddressVld) - BenefactorKindBoxReqVld = benefactorkindboxreqvalidator.New(BenefactorSvc, BenefactorAddressSvc, BenefactorReferTimeSvc, kindBoxReqRepo) + BenefactorKindBoxReqVld = benefactorkindboxreqvalidator.New(BenefactorAddressSvc, BenefactorReferTimeSvc, kindBoxReqRepo) BenefactorKindBoxReqSvc = benefactorkindboxreqservice.New(kindBoxReqRepo, BenefactorKindBoxReqVld) - BenefactorKindBoxVld = benefactorkindboxvalidator.New(kindBoxRepo, BenefactorSvc, BenefactorAddressSvc, BenefactorReferTimeSvc) + BenefactorKindBoxVld = benefactorkindboxvalidator.New(kindBoxRepo, BenefactorAddressSvc, BenefactorReferTimeSvc) BenefactorKindBoxSvc = benefactorkindboxservice.New(kindBoxRepo, BenefactorKindBoxVld) ) NotificationSvc := notification.New(cfg.NotificationSvc, smsAdapter, AdminKindBoxReqSvc, AdminBenefactorSvc, AdminSvc, AdminKindBoxSvc) diff --git a/validator/benefactor/address/add_address.go b/validator/benefactor/address/add_address.go index 9cead2ca..44ac3bcb 100644 --- a/validator/benefactor/address/add_address.go +++ b/validator/benefactor/address/add_address.go @@ -14,9 +14,6 @@ func (v Validator) ValidateAddAddress(ctx context.Context, req param.BenefactorA const op = "benefactorvalidator.ValidateAddRequest" if err := validation.ValidateStruct(&req, - validation.Field(&req.BenefactorID, validation.Required, - validation.By(v.doesBenefactorExist(ctx))), - validation.Field(&req.CityID, validation.Required, validation.By(v.doesCityExist(ctx))), diff --git a/validator/benefactor/address/add_address_test.go b/validator/benefactor/address/add_address_test.go index 523319a4..bc5add77 100644 --- a/validator/benefactor/address/add_address_test.go +++ b/validator/benefactor/address/add_address_test.go @@ -6,15 +6,13 @@ import ( "testing" addressparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/address" - benefactorparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" "github.com/stretchr/testify/assert" ) func TestValidator_ValidateAddAddress(t *testing.T) { - mockBenefactorSvc := NewMockBenefactorSvc(t) mockRepository := NewMockRepository(t) - validator := New(mockBenefactorSvc, mockRepository) + validator := New(mockRepository) ctx := context.Background() t.Run("Successful validation", func(t *testing.T) { @@ -28,8 +26,6 @@ func TestValidator_ValidateAddAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). Return(true, nil).Once() @@ -39,73 +35,6 @@ func TestValidator_ValidateAddAddress(t *testing.T) { assert.Nil(t, fieldErrors) }) - t.Run("Empty benefactor id", func(t *testing.T) { - req := addressparam.BenefactorAddAddressRequest{ - Address: "tehran", - BenefactorID: 0, - Lon: 45.0, - Lat: 90.0, - Name: "Test Name", - PostalCode: "1234567890", - CityID: 1, - } - - mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). - Return(true, nil).Once() - - fieldErrors, err := validator.ValidateAddAddress(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Contains(t, fieldErrors, "BenefactorID") - }) - - t.Run("Benefactor does not exist", func(t *testing.T) { - req := addressparam.BenefactorAddAddressRequest{ - Address: "tehran", - BenefactorID: 1, - Lon: 45.0, - Lat: 90.0, - Name: "Test Name", - PostalCode: "1234567890", - CityID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, nil).Once() - mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). - Return(true, nil).Once() - - fieldErrors, err := validator.ValidateAddAddress(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgBenefactorNotFound, fieldErrors["BenefactorID"]) - }) - - t.Run("Benefactor exist error", func(t *testing.T) { - req := addressparam.BenefactorAddAddressRequest{ - Address: "tehran", - BenefactorID: 1, - Lon: 45.0, - Lat: 90.0, - Name: "Test Name", - PostalCode: "1234567890", - CityID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, errors.New("service error")).Once() - mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). - Return(true, nil).Once() - - fieldErrors, err := validator.ValidateAddAddress(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgSomethingWentWrong, fieldErrors["BenefactorID"]) - }) - t.Run("Empty city id", func(t *testing.T) { req := addressparam.BenefactorAddAddressRequest{ Address: "tehran", @@ -117,9 +46,6 @@ func TestValidator_ValidateAddAddress(t *testing.T) { CityID: 0, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() - fieldErrors, err := validator.ValidateAddAddress(ctx, req) assert.Error(t, err) @@ -138,8 +64,6 @@ func TestValidator_ValidateAddAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). Return(false, nil).Once() fieldErrors, err := validator.ValidateAddAddress(ctx, req) @@ -160,8 +84,6 @@ func TestValidator_ValidateAddAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). Return(false, errors.New("repository error")).Once() fieldErrors, err := validator.ValidateAddAddress(ctx, req) @@ -182,8 +104,6 @@ func TestValidator_ValidateAddAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). Return(true, nil).Once() @@ -205,8 +125,6 @@ func TestValidator_ValidateAddAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). Return(true, nil).Once() @@ -228,8 +146,6 @@ func TestValidator_ValidateAddAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). Return(true, nil).Once() @@ -250,9 +166,6 @@ func TestValidator_ValidateAddAddress(t *testing.T) { PostalCode: "1234567890", CityID: 1, } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). Return(true, nil).Once() @@ -274,8 +187,6 @@ func TestValidator_ValidateAddAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). Return(true, nil).Once() diff --git a/validator/benefactor/address/delete.go b/validator/benefactor/address/delete.go index 6c1e01a4..101eb495 100644 --- a/validator/benefactor/address/delete.go +++ b/validator/benefactor/address/delete.go @@ -14,9 +14,6 @@ func (v Validator) ValidateDeleteRequest(ctx context.Context, req param.DeleteAd const op = "benefactoraddressvalidator.ValidateDeleteRequest" if err := validation.ValidateStruct(&req, - validation.Field(&req.BenefactorID, - validation.Required, - validation.By(v.doesBenefactorExist(ctx))), validation.Field(&req.AddressID, validation.Required, validation.By(v.doesAddressExist(ctx, req.BenefactorID))), diff --git a/validator/benefactor/address/delete_test.go b/validator/benefactor/address/delete_test.go index db82ec69..f22791c0 100644 --- a/validator/benefactor/address/delete_test.go +++ b/validator/benefactor/address/delete_test.go @@ -6,15 +6,13 @@ import ( "testing" addressparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/address" - benefactorparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" "github.com/stretchr/testify/assert" ) func TestValidator_ValidateDeleteRequest(t *testing.T) { - mockBenefactorSvc := NewMockBenefactorSvc(t) mockRepository := NewMockRepository(t) - validator := New(mockBenefactorSvc, mockRepository) + validator := New(mockRepository) ctx := context.Background() t.Run("Successful validation", func(t *testing.T) { @@ -23,8 +21,6 @@ func TestValidator_ValidateDeleteRequest(t *testing.T) { BenefactorID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(true, nil).Once() @@ -34,67 +30,12 @@ func TestValidator_ValidateDeleteRequest(t *testing.T) { assert.Nil(t, fieldErrors) }) - t.Run("Empty benefactor id", func(t *testing.T) { - req := addressparam.DeleteAddressRequest{ - AddressID: 1, - BenefactorID: 0, - } - - mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(0)). - Return(true, nil).Once() - - fieldErrors, err := validator.ValidateDeleteRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Contains(t, fieldErrors, "BenefactorID") - }) - - t.Run("Benefactor does not exist", func(t *testing.T) { - req := addressparam.DeleteAddressRequest{ - AddressID: 1, - BenefactorID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, nil).Once() - mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). - Return(true, nil).Once() - - fieldErrors, err := validator.ValidateDeleteRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgBenefactorNotFound, fieldErrors["BenefactorID"]) - }) - - t.Run("Benefactor exist error", func(t *testing.T) { - req := addressparam.DeleteAddressRequest{ - AddressID: 1, - BenefactorID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, errors.New("service error")).Once() - mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). - Return(true, nil).Once() - - fieldErrors, err := validator.ValidateDeleteRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgSomethingWentWrong, fieldErrors["BenefactorID"]) - }) - t.Run("Empty address id", func(t *testing.T) { req := addressparam.DeleteAddressRequest{ AddressID: 0, BenefactorID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() - fieldErrors, err := validator.ValidateDeleteRequest(ctx, req) assert.Error(t, err) @@ -108,8 +49,6 @@ func TestValidator_ValidateDeleteRequest(t *testing.T) { BenefactorID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(false, nil).Once() @@ -126,8 +65,6 @@ func TestValidator_ValidateDeleteRequest(t *testing.T) { BenefactorID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(false, errors.New("repository error")).Once() diff --git a/validator/benefactor/address/get.go b/validator/benefactor/address/get.go index daa00b82..ee77fa6c 100644 --- a/validator/benefactor/address/get.go +++ b/validator/benefactor/address/get.go @@ -14,9 +14,6 @@ func (v Validator) ValidateGetAddress(ctx context.Context, req param.GetAddressR const op = "benefactorvalidator.ValidateGetRequest" if err := validation.ValidateStruct(&req, - validation.Field(&req.BenefactorID, validation.Required, - validation.By(v.doesBenefactorExist(ctx))), - validation.Field(&req.AddressID, validation.Required, validation.Min(uint(1))), ); err != nil { diff --git a/validator/benefactor/address/get_test.go b/validator/benefactor/address/get_test.go index 93926210..3f719c83 100644 --- a/validator/benefactor/address/get_test.go +++ b/validator/benefactor/address/get_test.go @@ -2,19 +2,15 @@ package benefactoraddressvalidator import ( "context" - "errors" "testing" addressparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/address" - benefactorparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" - errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" "github.com/stretchr/testify/assert" ) func TestValidator_ValidateGetAddress(t *testing.T) { - mockBenefactorSvc := NewMockBenefactorSvc(t) mockRepository := NewMockRepository(t) - validator := New(mockBenefactorSvc, mockRepository) + validator := New(mockRepository) ctx := context.Background() t.Run("Successful validation", func(t *testing.T) { @@ -23,69 +19,18 @@ func TestValidator_ValidateGetAddress(t *testing.T) { BenefactorID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() - fieldErrors, err := validator.ValidateGetAddress(ctx, req) assert.NoError(t, err) assert.Nil(t, fieldErrors) }) - t.Run("Empty benefactor id", func(t *testing.T) { - req := addressparam.GetAddressRequest{ - AddressID: 1, - BenefactorID: 0, - } - - fieldErrors, err := validator.ValidateGetAddress(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Contains(t, fieldErrors, "BenefactorID") - }) - - t.Run("Benefactor does not exist", func(t *testing.T) { - req := addressparam.GetAddressRequest{ - AddressID: 1, - BenefactorID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, nil).Once() - - fieldErrors, err := validator.ValidateGetAddress(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgBenefactorNotFound, fieldErrors["BenefactorID"]) - }) - - t.Run("Benefactor exist error", func(t *testing.T) { - req := addressparam.GetAddressRequest{ - AddressID: 1, - BenefactorID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, errors.New("service error")).Once() - - fieldErrors, err := validator.ValidateGetAddress(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgSomethingWentWrong, fieldErrors["BenefactorID"]) - }) - t.Run("Empty address id", func(t *testing.T) { req := addressparam.GetAddressRequest{ AddressID: 0, BenefactorID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() - fieldErrors, err := validator.ValidateGetAddress(ctx, req) assert.Error(t, err) diff --git a/validator/benefactor/address/mock_BenefactorSvc_test.go b/validator/benefactor/address/mock_BenefactorSvc_test.go deleted file mode 100644 index 1d224490..00000000 --- a/validator/benefactor/address/mock_BenefactorSvc_test.go +++ /dev/null @@ -1,95 +0,0 @@ -// Code generated by mockery v2.45.1. DO NOT EDIT. - -package benefactoraddressvalidator - -import ( - context "context" - - benefactoreparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" - - mock "github.com/stretchr/testify/mock" -) - -// MockBenefactorSvc is an autogenerated mock type for the BenefactorSvc type -type MockBenefactorSvc struct { - mock.Mock -} - -type MockBenefactorSvc_Expecter struct { - mock *mock.Mock -} - -func (_m *MockBenefactorSvc) EXPECT() *MockBenefactorSvc_Expecter { - return &MockBenefactorSvc_Expecter{mock: &_m.Mock} -} - -// BenefactorExistByID provides a mock function with given fields: ctx, request -func (_m *MockBenefactorSvc) BenefactorExistByID(ctx context.Context, request benefactoreparam.BenefactorExistByIDRequest) (benefactoreparam.BenefactorExistByIDResponse, error) { - ret := _m.Called(ctx, request) - - if len(ret) == 0 { - panic("no return value specified for BenefactorExistByID") - } - - var r0 benefactoreparam.BenefactorExistByIDResponse - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, benefactoreparam.BenefactorExistByIDRequest) (benefactoreparam.BenefactorExistByIDResponse, error)); ok { - return rf(ctx, request) - } - if rf, ok := ret.Get(0).(func(context.Context, benefactoreparam.BenefactorExistByIDRequest) benefactoreparam.BenefactorExistByIDResponse); ok { - r0 = rf(ctx, request) - } else { - r0 = ret.Get(0).(benefactoreparam.BenefactorExistByIDResponse) - } - - if rf, ok := ret.Get(1).(func(context.Context, benefactoreparam.BenefactorExistByIDRequest) error); ok { - r1 = rf(ctx, request) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockBenefactorSvc_BenefactorExistByID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BenefactorExistByID' -type MockBenefactorSvc_BenefactorExistByID_Call struct { - *mock.Call -} - -// BenefactorExistByID is a helper method to define mock.On call -// - ctx context.Context -// - request benefactoreparam.BenefactorExistByIDRequest -func (_e *MockBenefactorSvc_Expecter) BenefactorExistByID(ctx interface{}, request interface{}) *MockBenefactorSvc_BenefactorExistByID_Call { - return &MockBenefactorSvc_BenefactorExistByID_Call{Call: _e.mock.On("BenefactorExistByID", ctx, request)} -} - -func (_c *MockBenefactorSvc_BenefactorExistByID_Call) Run(run func(ctx context.Context, request benefactoreparam.BenefactorExistByIDRequest)) *MockBenefactorSvc_BenefactorExistByID_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(benefactoreparam.BenefactorExistByIDRequest)) - }) - return _c -} - -func (_c *MockBenefactorSvc_BenefactorExistByID_Call) Return(_a0 benefactoreparam.BenefactorExistByIDResponse, _a1 error) *MockBenefactorSvc_BenefactorExistByID_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *MockBenefactorSvc_BenefactorExistByID_Call) RunAndReturn(run func(context.Context, benefactoreparam.BenefactorExistByIDRequest) (benefactoreparam.BenefactorExistByIDResponse, error)) *MockBenefactorSvc_BenefactorExistByID_Call { - _c.Call.Return(run) - return _c -} - -// NewMockBenefactorSvc creates a new instance of MockBenefactorSvc. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockBenefactorSvc(t interface { - mock.TestingT - Cleanup(func()) -}) *MockBenefactorSvc { - mock := &MockBenefactorSvc{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/validator/benefactor/address/update.go b/validator/benefactor/address/update.go index f0bc9f46..90418a41 100644 --- a/validator/benefactor/address/update.go +++ b/validator/benefactor/address/update.go @@ -14,9 +14,6 @@ func (v Validator) ValidateUpdateAddress(ctx context.Context, req param.UpdateAd const op = "benefactoraddressvalidator.ValidateUpdateAddress" if err := validation.ValidateStruct(&req, - validation.Field(&req.BenefactorID, validation.Required, - validation.By(v.doesBenefactorExist(ctx))), - validation.Field(&req.ID, validation.Required, validation.By(v.doesAddressExist(ctx, req.BenefactorID))), diff --git a/validator/benefactor/address/update_test.go b/validator/benefactor/address/update_test.go index d67e2a43..585652c4 100644 --- a/validator/benefactor/address/update_test.go +++ b/validator/benefactor/address/update_test.go @@ -6,15 +6,13 @@ import ( "testing" addressparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/address" - benefactorparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" "github.com/stretchr/testify/assert" ) func TestValidator_ValidateUpdateAddress(t *testing.T) { - mockBenefactorSvc := NewMockBenefactorSvc(t) mockRepository := NewMockRepository(t) - validator := New(mockBenefactorSvc, mockRepository) + validator := New(mockRepository) ctx := context.Background() t.Run("Successful validation", func(t *testing.T) { @@ -29,8 +27,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(true, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). @@ -54,8 +50,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). Return(true, nil).Once() @@ -78,8 +72,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(false, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). @@ -104,8 +96,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(false, errors.New("repository error")).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). @@ -118,82 +108,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { assert.Equal(t, errmsg.ErrorMsgSomethingWentWrong, fieldErrors["ID"]) }) - t.Run("Empty benefactor id", func(t *testing.T) { - req := addressparam.UpdateAddressRequest{ - ID: uint(1), - Address: "tehran", - BenefactorID: 0, - Lon: 45.0, - Lat: 90.0, - Name: "Test Name", - PostalCode: "1234567890", - CityID: 1, - } - - mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(0)). - Return(true, nil).Once() - mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). - Return(true, nil).Once() - - fieldErrors, err := validator.ValidateUpdateAddress(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Contains(t, fieldErrors, "BenefactorID") - }) - - t.Run("Benefactor does not exist", func(t *testing.T) { - req := addressparam.UpdateAddressRequest{ - ID: uint(1), - Address: "tehran", - BenefactorID: 1, - Lon: 45.0, - Lat: 90.0, - Name: "Test Name", - PostalCode: "1234567890", - CityID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, nil).Once() - mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). - Return(true, nil).Once() - mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). - Return(true, nil).Once() - - fieldErrors, err := validator.ValidateUpdateAddress(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgBenefactorNotFound, fieldErrors["BenefactorID"]) - }) - - t.Run("Benefactor exist error", func(t *testing.T) { - req := addressparam.UpdateAddressRequest{ - ID: uint(1), - Address: "tehran", - BenefactorID: 1, - Lon: 45.0, - Lat: 90.0, - Name: "Test Name", - PostalCode: "1234567890", - CityID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, errors.New("service error")).Once() - mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). - Return(true, nil).Once() - mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). - Return(true, nil).Once() - - fieldErrors, err := validator.ValidateUpdateAddress(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgSomethingWentWrong, fieldErrors["BenefactorID"]) - }) - t.Run("Empty city id", func(t *testing.T) { req := addressparam.UpdateAddressRequest{ ID: uint(1), @@ -206,8 +120,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 0, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(true, nil).Once() @@ -230,8 +142,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(true, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). @@ -256,8 +166,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(true, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). @@ -282,8 +190,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(true, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). @@ -308,8 +214,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(true, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). @@ -334,8 +238,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(true, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). @@ -360,8 +262,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(true, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). @@ -386,8 +286,6 @@ func TestValidator_ValidateUpdateAddress(t *testing.T) { CityID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().IsExistAddressByID(ctx, uint(1), uint(1)). Return(true, nil).Once() mockRepository.EXPECT().IsExistCityByID(ctx, uint(1)). diff --git a/validator/benefactor/address/validator.go b/validator/benefactor/address/validator.go index 1287fea6..4a034542 100644 --- a/validator/benefactor/address/validator.go +++ b/validator/benefactor/address/validator.go @@ -4,47 +4,21 @@ import ( "context" "fmt" - param "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" validation "github.com/go-ozzo/ozzo-validation/v4" ) -//go:generate mockery --name BenefactorSvc -type BenefactorSvc interface { - BenefactorExistByID(ctx context.Context, request param.BenefactorExistByIDRequest) (param.BenefactorExistByIDResponse, error) -} - //go:generate mockery --name Repository type Repository interface { IsExistCityByID(ctx context.Context, id uint) (bool, error) IsExistAddressByID(ctx context.Context, addressID uint, benefactorID uint) (bool, error) } type Validator struct { - benefactorSvc BenefactorSvc - repository Repository + repository Repository } -func New(benefactorSvc BenefactorSvc, repository Repository) Validator { - return Validator{benefactorSvc: benefactorSvc, repository: repository} -} - -func (v Validator) doesBenefactorExist(ctx context.Context) validation.RuleFunc { - return func(value interface{}) error { - benefactorID, ok := value.(uint) - if !ok { - return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong) - } - res, err := v.benefactorSvc.BenefactorExistByID(ctx, param.BenefactorExistByIDRequest{ID: benefactorID}) - if err != nil { - return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong) - } - - if !res.Existed { - return fmt.Errorf(errmsg.ErrorMsgBenefactorNotFound) - } - - return nil - } +func New(repository Repository) Validator { + return Validator{repository: repository} } func (v Validator) doesCityExist(ctx context.Context) validation.RuleFunc { diff --git a/validator/benefactor/kind_box/get.go b/validator/benefactor/kind_box/get.go index 2cfb197c..e5764f13 100644 --- a/validator/benefactor/kind_box/get.go +++ b/validator/benefactor/kind_box/get.go @@ -14,10 +14,6 @@ func (v Validator) ValidateGetRequest(ctx context.Context, req param.KindBoxGetR const op = "userkindboxvalidator.ValidateGetRequest" if err := validation.ValidateStruct(&req, - validation.Field(&req.BenefactorID, - validation.Required, - validation.By(v.doesBenefactorExist(ctx))), - validation.Field(&req.KindBoxID, validation.Required, validation.By(v.doesBenefactorKindBoxExist(ctx, req.BenefactorID))), ); err != nil { diff --git a/validator/benefactor/kind_box/get_all_test.go b/validator/benefactor/kind_box/get_all_test.go index ff6499d9..db2ec419 100644 --- a/validator/benefactor/kind_box/get_all_test.go +++ b/validator/benefactor/kind_box/get_all_test.go @@ -10,10 +10,9 @@ import ( func TestValidator_ValidateGetAll(t *testing.T) { mockRepository := NewMockRepository(t) - mockBenefactorSvc := NewMockBenefactorSvc(t) mockAddressSvc := NewMockAddressSvc(t) mockReferTimeSvc := NewMockReferTimeSvc(t) - validator := New(mockRepository, mockBenefactorSvc, mockAddressSvc, mockReferTimeSvc) + validator := New(mockRepository, mockAddressSvc, mockReferTimeSvc) t.Run("Successful validation", func(t *testing.T) { req := param.KindBoxGetAllRequest{ diff --git a/validator/benefactor/kind_box/get_test.go b/validator/benefactor/kind_box/get_test.go index 1bd9b283..a3806efb 100644 --- a/validator/benefactor/kind_box/get_test.go +++ b/validator/benefactor/kind_box/get_test.go @@ -5,7 +5,6 @@ import ( "errors" "testing" - benefactorparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" param "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" "github.com/stretchr/testify/assert" @@ -13,10 +12,9 @@ import ( func TestValidator_ValidateGetRequest(t *testing.T) { mockRepository := NewMockRepository(t) - mockBenefactorSvc := NewMockBenefactorSvc(t) mockAddressSvc := NewMockAddressSvc(t) mockReferTimeSvc := NewMockReferTimeSvc(t) - validator := New(mockRepository, mockBenefactorSvc, mockAddressSvc, mockReferTimeSvc) + validator := New(mockRepository, mockAddressSvc, mockReferTimeSvc) ctx := context.Background() t.Run("Successful validation", func(t *testing.T) { @@ -25,8 +23,6 @@ func TestValidator_ValidateGetRequest(t *testing.T) { KindBoxID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() fieldErrors, err := validator.ValidateGetRequest(ctx, req) @@ -35,64 +31,12 @@ func TestValidator_ValidateGetRequest(t *testing.T) { assert.Nil(t, fieldErrors) }) - t.Run("Empty benefactor id", func(t *testing.T) { - req := param.KindBoxGetRequest{ - BenefactorID: 0, - KindBoxID: 1, - } - - mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(0), uint(1)).Return(true, nil).Once() - - fieldErrors, err := validator.ValidateGetRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Contains(t, fieldErrors, "BenefactorID") - }) - - t.Run("Benefactor does not exist", func(t *testing.T) { - req := param.KindBoxGetRequest{ - BenefactorID: 1, - KindBoxID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, nil).Once() - mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() - - fieldErrors, err := validator.ValidateGetRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgBenefactorNotFound, fieldErrors["BenefactorID"]) - }) - - t.Run("Benefactor exist error", func(t *testing.T) { - req := param.KindBoxGetRequest{ - BenefactorID: 1, - KindBoxID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, errors.New("service error")).Once() - mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() - - fieldErrors, err := validator.ValidateGetRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgSomethingWentWrong, fieldErrors["BenefactorID"]) - }) - t.Run("Empty KindBox id", func(t *testing.T) { req := param.KindBoxGetRequest{ BenefactorID: 1, KindBoxID: 0, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() - fieldErrors, err := validator.ValidateGetRequest(ctx, req) assert.Error(t, err) @@ -106,8 +50,6 @@ func TestValidator_ValidateGetRequest(t *testing.T) { KindBoxID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(false, nil).Once() fieldErrors, err := validator.ValidateGetRequest(ctx, req) @@ -123,8 +65,6 @@ func TestValidator_ValidateGetRequest(t *testing.T) { KindBoxID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(false, errors.New("repo error")).Once() fieldErrors, err := validator.ValidateGetRequest(ctx, req) diff --git a/validator/benefactor/kind_box/mock_BenefactorSvc_test.go b/validator/benefactor/kind_box/mock_BenefactorSvc_test.go deleted file mode 100644 index fa9ab260..00000000 --- a/validator/benefactor/kind_box/mock_BenefactorSvc_test.go +++ /dev/null @@ -1,95 +0,0 @@ -// Code generated by mockery v2.45.1. DO NOT EDIT. - -package benefactorkindboxvalidator - -import ( - context "context" - - benefactoreparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" - - mock "github.com/stretchr/testify/mock" -) - -// MockBenefactorSvc is an autogenerated mock type for the BenefactorSvc type -type MockBenefactorSvc struct { - mock.Mock -} - -type MockBenefactorSvc_Expecter struct { - mock *mock.Mock -} - -func (_m *MockBenefactorSvc) EXPECT() *MockBenefactorSvc_Expecter { - return &MockBenefactorSvc_Expecter{mock: &_m.Mock} -} - -// BenefactorExistByID provides a mock function with given fields: ctx, request -func (_m *MockBenefactorSvc) BenefactorExistByID(ctx context.Context, request benefactoreparam.BenefactorExistByIDRequest) (benefactoreparam.BenefactorExistByIDResponse, error) { - ret := _m.Called(ctx, request) - - if len(ret) == 0 { - panic("no return value specified for BenefactorExistByID") - } - - var r0 benefactoreparam.BenefactorExistByIDResponse - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, benefactoreparam.BenefactorExistByIDRequest) (benefactoreparam.BenefactorExistByIDResponse, error)); ok { - return rf(ctx, request) - } - if rf, ok := ret.Get(0).(func(context.Context, benefactoreparam.BenefactorExistByIDRequest) benefactoreparam.BenefactorExistByIDResponse); ok { - r0 = rf(ctx, request) - } else { - r0 = ret.Get(0).(benefactoreparam.BenefactorExistByIDResponse) - } - - if rf, ok := ret.Get(1).(func(context.Context, benefactoreparam.BenefactorExistByIDRequest) error); ok { - r1 = rf(ctx, request) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockBenefactorSvc_BenefactorExistByID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BenefactorExistByID' -type MockBenefactorSvc_BenefactorExistByID_Call struct { - *mock.Call -} - -// BenefactorExistByID is a helper method to define mock.On call -// - ctx context.Context -// - request benefactoreparam.BenefactorExistByIDRequest -func (_e *MockBenefactorSvc_Expecter) BenefactorExistByID(ctx interface{}, request interface{}) *MockBenefactorSvc_BenefactorExistByID_Call { - return &MockBenefactorSvc_BenefactorExistByID_Call{Call: _e.mock.On("BenefactorExistByID", ctx, request)} -} - -func (_c *MockBenefactorSvc_BenefactorExistByID_Call) Run(run func(ctx context.Context, request benefactoreparam.BenefactorExistByIDRequest)) *MockBenefactorSvc_BenefactorExistByID_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(benefactoreparam.BenefactorExistByIDRequest)) - }) - return _c -} - -func (_c *MockBenefactorSvc_BenefactorExistByID_Call) Return(_a0 benefactoreparam.BenefactorExistByIDResponse, _a1 error) *MockBenefactorSvc_BenefactorExistByID_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *MockBenefactorSvc_BenefactorExistByID_Call) RunAndReturn(run func(context.Context, benefactoreparam.BenefactorExistByIDRequest) (benefactoreparam.BenefactorExistByIDResponse, error)) *MockBenefactorSvc_BenefactorExistByID_Call { - _c.Call.Return(run) - return _c -} - -// NewMockBenefactorSvc creates a new instance of MockBenefactorSvc. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockBenefactorSvc(t interface { - mock.TestingT - Cleanup(func()) -}) *MockBenefactorSvc { - mock := &MockBenefactorSvc{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/validator/benefactor/kind_box/register_emptying_request.go b/validator/benefactor/kind_box/register_emptying_request.go index 7c7ecbbd..a0530392 100644 --- a/validator/benefactor/kind_box/register_emptying_request.go +++ b/validator/benefactor/kind_box/register_emptying_request.go @@ -14,9 +14,6 @@ func (v Validator) ValidateRegisterEmptyingRequest(ctx context.Context, req para const op = "benefactorkindboxvalidator.ValidateRegisterEmptyingRequest" if err := validation.ValidateStruct(&req, - validation.Field(&req.BenefactorID, validation.Required, - validation.By(v.doesBenefactorExist(ctx))), - validation.Field(&req.KindBoxID, validation.Required, validation.By(v.doesBenefactorKindBoxExist(ctx, req.BenefactorID)), validation.By(v.doesKindBoxHaveDeliveredStatus(ctx))), diff --git a/validator/benefactor/kind_box/register_emptying_request_test.go b/validator/benefactor/kind_box/register_emptying_request_test.go index 38defb01..a327353c 100644 --- a/validator/benefactor/kind_box/register_emptying_request_test.go +++ b/validator/benefactor/kind_box/register_emptying_request_test.go @@ -8,7 +8,6 @@ import ( "git.gocasts.ir/ebhomengo/niki/entity" addressparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/address" - benefactorparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" param "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box" refertimeparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/refer_time" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" @@ -17,10 +16,9 @@ import ( func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { mockRepository := NewMockRepository(t) - mockBenefactorSvc := NewMockBenefactorSvc(t) mockAddressSvc := NewMockAddressSvc(t) mockReferTimeSvc := NewMockReferTimeSvc(t) - validator := New(mockRepository, mockBenefactorSvc, mockAddressSvc, mockReferTimeSvc) + validator := New(mockRepository, mockAddressSvc, mockReferTimeSvc) ctx := context.Background() t.Run("Successful validation", func(t *testing.T) { @@ -32,8 +30,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() mockRepository.EXPECT().GetKindBox(ctx, uint(1)).Return(entity.KindBox{Status: entity.KindBoxDeliveredStatus}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( @@ -60,8 +56,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, nil, @@ -87,8 +81,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(2)).Return(false, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, @@ -115,8 +107,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(3)).Return(true, nil).Once() mockRepository.EXPECT().GetKindBox(ctx, uint(3)).Return(entity.KindBox{Status: entity.KindBoxAssignedReceiverAgentStatus}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( @@ -144,8 +134,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(false, errors.New("repo error")).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, @@ -163,89 +151,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { assert.Equal(t, errmsg.ErrorMsgSomethingWentWrong, fieldErrors["KindBoxID"]) }) - t.Run("Empty benefactor id", func(t *testing.T) { - req := param.KindBoxRegisterEmptyingRequest{ - KindBoxID: 1, - BenefactorID: 0, - ReturnAddressID: 1, - ReturnReferTimeID: 1, - ReturnReferDate: time.Now().Add(time.Hour * 24), - } - - mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(0), uint(1)).Return(false, nil).Once() - mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( - addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, - nil, - ).Once() - mockReferTimeSvc.EXPECT().GetReferTimeByID(ctx, refertimeparam.GetReferTimeRequest{ReferTimeID: 1}).Return( - refertimeparam.GetReferTimeResponse{ReferTime: entity.ReferTime{Status: entity.ReferTimeActiveStatus}}, - nil, - ).Once() - - fieldErrors, err := validator.ValidateRegisterEmptyingRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Contains(t, fieldErrors, "BenefactorID") - }) - - t.Run("Benefactor does not exist", func(t *testing.T) { - req := param.KindBoxRegisterEmptyingRequest{ - KindBoxID: 1, - BenefactorID: 2, - ReturnAddressID: 1, - ReturnReferTimeID: 1, - ReturnReferDate: time.Now().Add(time.Hour * 24), - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 2}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, nil).Once() - mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(2), uint(1)).Return(false, nil).Once() - mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( - addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, - nil, - ).Once() - mockReferTimeSvc.EXPECT().GetReferTimeByID(ctx, refertimeparam.GetReferTimeRequest{ReferTimeID: 1}).Return( - refertimeparam.GetReferTimeResponse{ReferTime: entity.ReferTime{Status: entity.ReferTimeActiveStatus}}, - nil, - ).Once() - - fieldErrors, err := validator.ValidateRegisterEmptyingRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgBenefactorNotFound, fieldErrors["BenefactorID"]) - }) - - t.Run("Benefactor exist error", func(t *testing.T) { - req := param.KindBoxRegisterEmptyingRequest{ - KindBoxID: 1, - BenefactorID: 1, - ReturnAddressID: 1, - ReturnReferTimeID: 1, - ReturnReferDate: time.Now().Add(time.Hour * 24), - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, errors.New("service error")).Once() - mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() - mockRepository.EXPECT().GetKindBox(ctx, uint(1)).Return(entity.KindBox{Status: entity.KindBoxDeliveredStatus}, nil).Once() - mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( - addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, - nil, - ).Once() - mockReferTimeSvc.EXPECT().GetReferTimeByID(ctx, refertimeparam.GetReferTimeRequest{ReferTimeID: 1}).Return( - refertimeparam.GetReferTimeResponse{ReferTime: entity.ReferTime{Status: entity.ReferTimeActiveStatus}}, - nil, - ).Once() - - fieldErrors, err := validator.ValidateRegisterEmptyingRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgSomethingWentWrong, fieldErrors["BenefactorID"]) - }) - t.Run("Empty ReturnAddress id", func(t *testing.T) { req := param.KindBoxRegisterEmptyingRequest{ KindBoxID: 1, @@ -255,8 +160,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() mockRepository.EXPECT().GetKindBox(ctx, uint(1)).Return(entity.KindBox{Status: entity.KindBoxDeliveredStatus}, nil).Once() mockReferTimeSvc.EXPECT().GetReferTimeByID(ctx, refertimeparam.GetReferTimeRequest{ReferTimeID: 1}).Return( @@ -280,8 +183,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() mockRepository.EXPECT().GetKindBox(ctx, uint(1)).Return(entity.KindBox{Status: entity.KindBoxDeliveredStatus}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 2}).Return( @@ -309,8 +210,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() mockRepository.EXPECT().GetKindBox(ctx, uint(1)).Return(entity.KindBox{Status: entity.KindBoxDeliveredStatus}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( @@ -337,8 +236,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferTimeID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() mockRepository.EXPECT().GetKindBox(ctx, uint(1)).Return(entity.KindBox{Status: entity.KindBoxDeliveredStatus}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( @@ -366,8 +263,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * -24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() mockRepository.EXPECT().GetKindBox(ctx, uint(1)).Return(entity.KindBox{Status: entity.KindBoxDeliveredStatus}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( @@ -395,8 +290,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() mockRepository.EXPECT().GetKindBox(ctx, uint(1)).Return(entity.KindBox{Status: entity.KindBoxDeliveredStatus}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( @@ -420,8 +313,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() mockRepository.EXPECT().GetKindBox(ctx, uint(1)).Return(entity.KindBox{Status: entity.KindBoxDeliveredStatus}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( @@ -449,8 +340,6 @@ func TestValidator_ValidateRegisterEmptyingRequest(t *testing.T) { ReturnReferDate: time.Now().Add(time.Hour * 24), } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().BenefactorKindBoxExist(ctx, uint(1), uint(1)).Return(true, nil).Once() mockRepository.EXPECT().GetKindBox(ctx, uint(1)).Return(entity.KindBox{Status: entity.KindBoxDeliveredStatus}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( diff --git a/validator/benefactor/kind_box/validator.go b/validator/benefactor/kind_box/validator.go index a9b9d0ea..d25014f4 100644 --- a/validator/benefactor/kind_box/validator.go +++ b/validator/benefactor/kind_box/validator.go @@ -9,7 +9,6 @@ import ( "git.gocasts.ir/ebhomengo/niki/entity" params "git.gocasts.ir/ebhomengo/niki/param" addressparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/address" - param "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" refertimeparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/refer_time" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" validation "github.com/go-ozzo/ozzo-validation/v4" @@ -21,11 +20,6 @@ type Repository interface { GetKindBox(ctx context.Context, kindBoxID uint) (entity.KindBox, error) } -//go:generate mockery --name BenefactorSvc -type BenefactorSvc interface { - BenefactorExistByID(ctx context.Context, request param.BenefactorExistByIDRequest) (param.BenefactorExistByIDResponse, error) -} - //go:generate mockery --name AddressSvc type AddressSvc interface { AddressExistByID(ctx context.Context, request addressparam.GetAddressByIDRequest) (addressparam.GetAddressByIDResponse, error) @@ -37,32 +31,13 @@ type ReferTimeSvc interface { } type Validator struct { - repo Repository - benefactorSvc BenefactorSvc - addressSvc AddressSvc - referTimeSvc ReferTimeSvc + repo Repository + addressSvc AddressSvc + referTimeSvc ReferTimeSvc } -func New(repo Repository, benefactorSvc BenefactorSvc, addressSvc AddressSvc, referTimeSvc ReferTimeSvc) Validator { - return Validator{repo: repo, benefactorSvc: benefactorSvc, addressSvc: addressSvc, referTimeSvc: referTimeSvc} -} - -func (v Validator) doesBenefactorExist(ctx context.Context) validation.RuleFunc { - return func(value interface{}) error { - benefactorID, ok := value.(uint) - if !ok { - return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong) - } - res, err := v.benefactorSvc.BenefactorExistByID(ctx, param.BenefactorExistByIDRequest{ID: benefactorID}) - if err != nil { - return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong) - } - if !res.Existed { - return fmt.Errorf(errmsg.ErrorMsgBenefactorNotFound) - } - - return nil - } +func New(repo Repository, addressSvc AddressSvc, referTimeSvc ReferTimeSvc) Validator { + return Validator{repo: repo, addressSvc: addressSvc, referTimeSvc: referTimeSvc} } func (v Validator) doesBenefactorKindBoxExist(ctx context.Context, benefactorID uint) validation.RuleFunc { diff --git a/validator/benefactor/kind_box_req/add.go b/validator/benefactor/kind_box_req/add.go index 9fba4ba3..b80edd2f 100644 --- a/validator/benefactor/kind_box_req/add.go +++ b/validator/benefactor/kind_box_req/add.go @@ -14,12 +14,9 @@ func (v Validator) ValidateAddRequest(ctx context.Context, req param.KindBoxReqA const op = "userkindboxreqvalidator.ValidateAddRequest" if err := validation.ValidateStruct(&req, - - validation.Field(&req.CountRequested, validation.Required, validation.Min(MinKindBoxReq), validation.Max(MaxKindBoxReq)), - - validation.Field(&req.BenefactorID, + validation.Field(&req.CountRequested, validation.Required, - validation.By(v.doesBenefactorExist(ctx))), + validation.Min(MinKindBoxReq), validation.Max(MaxKindBoxReq)), validation.Field(&req.KindBoxType, validation.Required, diff --git a/validator/benefactor/kind_box_req/add_test.go b/validator/benefactor/kind_box_req/add_test.go index 7dcef0a1..4870749d 100644 --- a/validator/benefactor/kind_box_req/add_test.go +++ b/validator/benefactor/kind_box_req/add_test.go @@ -8,7 +8,6 @@ import ( "git.gocasts.ir/ebhomengo/niki/entity" addressparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/address" - benefactorparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" kindboxreqparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box_req" refertimeparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/refer_time" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" @@ -17,10 +16,9 @@ import ( func TestValidator_ValidateAddRequest(t *testing.T) { mockRepository := NewMockRepository(t) - mockBenefactorSvc := NewMockBenefactorSvc(t) mockAddressSvc := NewMockAddressSvc(t) mockReferTimeSvc := NewMockReferTimeSvc(t) - validator := New(mockBenefactorSvc, mockAddressSvc, mockReferTimeSvc, mockRepository) + validator := New(mockAddressSvc, mockReferTimeSvc, mockRepository) ctx := context.Background() t.Run("Successful validation", func(t *testing.T) { @@ -33,8 +31,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { CountRequested: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, nil, @@ -60,8 +56,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { CountRequested: 101, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, nil, @@ -78,88 +72,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { assert.Contains(t, fieldErrors, "count_requested") }) - t.Run("Empty benefactor id", func(t *testing.T) { - req := kindboxreqparam.KindBoxReqAddRequest{ - BenefactorID: 0, - KindBoxType: entity.KindBoxOnTable, - DeliverAddressID: 1, - DeliverReferDate: time.Now().Add(time.Hour * 24), - DeliverReferTimeID: 1, - CountRequested: 1, - } - - mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( - addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, - nil, - ).Once() - mockReferTimeSvc.EXPECT().GetReferTimeByID(ctx, refertimeparam.GetReferTimeRequest{ReferTimeID: 1}).Return( - refertimeparam.GetReferTimeResponse{ReferTime: entity.ReferTime{Status: entity.ReferTimeActiveStatus}}, - nil, - ).Once() - - fieldErrors, err := validator.ValidateAddRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Contains(t, fieldErrors, "BenefactorID") - }) - - t.Run("Benefactor does not exist", func(t *testing.T) { - req := kindboxreqparam.KindBoxReqAddRequest{ - BenefactorID: 2, - KindBoxType: entity.KindBoxOnTable, - DeliverAddressID: 1, - DeliverReferDate: time.Now().Add(time.Hour * 24), - DeliverReferTimeID: 1, - CountRequested: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 2}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, nil).Once() - mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( - addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, - nil, - ).Once() - mockReferTimeSvc.EXPECT().GetReferTimeByID(ctx, refertimeparam.GetReferTimeRequest{ReferTimeID: 1}).Return( - refertimeparam.GetReferTimeResponse{ReferTime: entity.ReferTime{Status: entity.ReferTimeActiveStatus}}, - nil, - ).Once() - - fieldErrors, err := validator.ValidateAddRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgBenefactorNotFound, fieldErrors["BenefactorID"]) - }) - - t.Run("Benefactor exist error", func(t *testing.T) { - req := kindboxreqparam.KindBoxReqAddRequest{ - BenefactorID: 1, - KindBoxType: entity.KindBoxOnTable, - DeliverAddressID: 1, - DeliverReferDate: time.Now().Add(time.Hour * 24), - DeliverReferTimeID: 1, - CountRequested: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, errors.New("service error")).Once() - mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( - addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, - nil, - ).Once() - mockReferTimeSvc.EXPECT().GetReferTimeByID(ctx, refertimeparam.GetReferTimeRequest{ReferTimeID: 1}).Return( - refertimeparam.GetReferTimeResponse{ReferTime: entity.ReferTime{Status: entity.ReferTimeActiveStatus}}, - nil, - ).Once() - - fieldErrors, err := validator.ValidateAddRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgSomethingWentWrong, fieldErrors["BenefactorID"]) - }) - t.Run("Invalid KindBox type", func(t *testing.T) { req := kindboxreqparam.KindBoxReqAddRequest{ BenefactorID: 1, @@ -170,8 +82,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { CountRequested: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, nil, @@ -198,8 +108,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { CountRequested: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockReferTimeSvc.EXPECT().GetReferTimeByID(ctx, refertimeparam.GetReferTimeRequest{ReferTimeID: 1}).Return( refertimeparam.GetReferTimeResponse{ReferTime: entity.ReferTime{Status: entity.ReferTimeActiveStatus}}, nil, @@ -222,8 +130,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { CountRequested: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 2}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 2}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 3}}, nil, @@ -250,8 +156,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { CountRequested: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, errors.New("service error")).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, errors.New("service error"), @@ -278,8 +182,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { CountRequested: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, nil, @@ -306,8 +208,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { CountRequested: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, nil, @@ -330,8 +230,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { CountRequested: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, nil, @@ -358,8 +256,6 @@ func TestValidator_ValidateAddRequest(t *testing.T) { CountRequested: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockAddressSvc.EXPECT().AddressExistByID(ctx, addressparam.GetAddressByIDRequest{ID: 1}).Return( addressparam.GetAddressByIDResponse{Address: entity.Address{BenefactorID: 1}}, nil, diff --git a/validator/benefactor/kind_box_req/delete.go b/validator/benefactor/kind_box_req/delete.go index cce90a35..e78443be 100644 --- a/validator/benefactor/kind_box_req/delete.go +++ b/validator/benefactor/kind_box_req/delete.go @@ -14,9 +14,6 @@ func (v Validator) ValidateDeleteRequest(ctx context.Context, req param.KindBoxR const op = "userkindboxreqvalidator.ValidateDeleteRequest" if err := validation.ValidateStruct(&req, - validation.Field(&req.BenefactorID, - validation.Required, - validation.By(v.doesBenefactorExist(ctx))), validation.Field(&req.KindBoxReqID, validation.Required, validation.By(v.doesKindBoxRequestHavePendingStatus(ctx)), diff --git a/validator/benefactor/kind_box_req/delete_test.go b/validator/benefactor/kind_box_req/delete_test.go index 592aa378..8f90bfbc 100644 --- a/validator/benefactor/kind_box_req/delete_test.go +++ b/validator/benefactor/kind_box_req/delete_test.go @@ -6,7 +6,6 @@ import ( "testing" "git.gocasts.ir/ebhomengo/niki/entity" - benefactorparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" kindboxreqparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box_req" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" "github.com/stretchr/testify/assert" @@ -14,10 +13,9 @@ import ( func TestValidator_ValidateDeleteRequest(t *testing.T) { mockRepository := NewMockRepository(t) - mockBenefactorSvc := NewMockBenefactorSvc(t) mockAddressSvc := NewMockAddressSvc(t) mockReferTimeSvc := NewMockReferTimeSvc(t) - validator := New(mockBenefactorSvc, mockAddressSvc, mockReferTimeSvc, mockRepository) + validator := New(mockAddressSvc, mockReferTimeSvc, mockRepository) ctx := context.Background() t.Run("Successful validation", func(t *testing.T) { @@ -26,8 +24,6 @@ func TestValidator_ValidateDeleteRequest(t *testing.T) { KindBoxReqID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().GetKindBoxReqByID(ctx, uint(1)).Return( entity.KindBoxReq{BenefactorID: 1, Status: entity.KindBoxReqPendingStatus}, nil, @@ -39,73 +35,12 @@ func TestValidator_ValidateDeleteRequest(t *testing.T) { assert.Nil(t, fieldErrors) }) - t.Run("Empty benefactor id", func(t *testing.T) { - req := kindboxreqparam.KindBoxReqDeleteRequest{ - BenefactorID: 0, - KindBoxReqID: 1, - } - - mockRepository.EXPECT().GetKindBoxReqByID(ctx, uint(1)).Return( - entity.KindBoxReq{BenefactorID: 1, Status: entity.KindBoxReqPendingStatus}, - nil, - ).Twice() - - fieldErrors, err := validator.ValidateDeleteRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Contains(t, fieldErrors, "BenefactorID") - }) - - t.Run("Benefactor does not exist", func(t *testing.T) { - req := kindboxreqparam.KindBoxReqDeleteRequest{ - BenefactorID: 2, - KindBoxReqID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 2}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, nil).Once() - mockRepository.EXPECT().GetKindBoxReqByID(ctx, uint(1)).Return( - entity.KindBoxReq{BenefactorID: 1, Status: entity.KindBoxReqPendingStatus}, - nil, - ).Twice() - - fieldErrors, err := validator.ValidateDeleteRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Contains(t, fieldErrors, "BenefactorID") - }) - - t.Run("Benefactor exist error", func(t *testing.T) { - req := kindboxreqparam.KindBoxReqDeleteRequest{ - BenefactorID: 2, - KindBoxReqID: 1, - } - - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 2}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: false}, errors.New("service error")).Once() - mockRepository.EXPECT().GetKindBoxReqByID(ctx, uint(1)).Return( - entity.KindBoxReq{BenefactorID: 1, Status: entity.KindBoxReqPendingStatus}, - nil, - ).Twice() - - fieldErrors, err := validator.ValidateDeleteRequest(ctx, req) - - assert.Error(t, err) - assert.NotNil(t, fieldErrors) - assert.Equal(t, errmsg.ErrorMsgSomethingWentWrong, fieldErrors["BenefactorID"]) - }) - t.Run("Empty KindBoxReq id", func(t *testing.T) { req := kindboxreqparam.KindBoxReqDeleteRequest{ BenefactorID: 1, KindBoxReqID: 0, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() - fieldErrors, err := validator.ValidateDeleteRequest(ctx, req) assert.Error(t, err) @@ -119,8 +54,6 @@ func TestValidator_ValidateDeleteRequest(t *testing.T) { KindBoxReqID: 2, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().GetKindBoxReqByID(ctx, uint(2)).Return( entity.KindBoxReq{BenefactorID: 1, Status: entity.KindBoxReqDeliveredStatus}, nil, @@ -139,8 +72,6 @@ func TestValidator_ValidateDeleteRequest(t *testing.T) { KindBoxReqID: 3, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().GetKindBoxReqByID(ctx, uint(3)).Return( entity.KindBoxReq{BenefactorID: 4, Status: entity.KindBoxReqPendingStatus}, nil, @@ -159,8 +90,6 @@ func TestValidator_ValidateDeleteRequest(t *testing.T) { KindBoxReqID: 1, } - mockBenefactorSvc.EXPECT().BenefactorExistByID(ctx, benefactorparam.BenefactorExistByIDRequest{ID: 1}). - Return(benefactorparam.BenefactorExistByIDResponse{Existed: true}, nil).Once() mockRepository.EXPECT().GetKindBoxReqByID(ctx, uint(1)).Return( entity.KindBoxReq{BenefactorID: 1, Status: entity.KindBoxReqPendingStatus}, errors.New("service error"), diff --git a/validator/benefactor/kind_box_req/get.go b/validator/benefactor/kind_box_req/get.go index c75dcbe2..f771691b 100644 --- a/validator/benefactor/kind_box_req/get.go +++ b/validator/benefactor/kind_box_req/get.go @@ -14,14 +14,8 @@ func (v Validator) ValidateGetRequest(ctx context.Context, req param.KindBoxReqG const op = "userkindboxreqvalidator.ValidateGetRequest" if err := validation.ValidateStruct(&req, - validation.Field(&req.BenefactorID, - validation.Required, - validation.By(v.doesBenefactorExist(ctx))), - - // validation.Field(&req.KindBoxReqID, - // validation.Required, - // validation.By(v.doesKindBoxRequestExist), - // validation.By(v.doesKindBoxBelongToBenefactor(req.BenefactorID))), + validation.Field(&req.KindBoxReqID, validation.Required, + validation.By(v.doesKindBoxBelongToBenefactor(ctx, req.BenefactorID))), ); err != nil { fieldErrors := make(map[string]string) @@ -41,5 +35,5 @@ func (v Validator) ValidateGetRequest(ctx context.Context, req param.KindBoxReqG WithErr(err) } - return map[string]string{}, nil + return nil, nil } diff --git a/validator/benefactor/kind_box_req/get_all_test.go b/validator/benefactor/kind_box_req/get_all_test.go index b16af709..b9c36c51 100644 --- a/validator/benefactor/kind_box_req/get_all_test.go +++ b/validator/benefactor/kind_box_req/get_all_test.go @@ -10,10 +10,9 @@ import ( func TestValidator_ValidateGetAll(t *testing.T) { mockRepository := NewMockRepository(t) - mockBenefactorSvc := NewMockBenefactorSvc(t) mockAddressSvc := NewMockAddressSvc(t) mockReferTimeSvc := NewMockReferTimeSvc(t) - validator := New(mockBenefactorSvc, mockAddressSvc, mockReferTimeSvc, mockRepository) + validator := New(mockAddressSvc, mockReferTimeSvc, mockRepository) t.Run("Successful validation", func(t *testing.T) { req := kindboxreqparam.GetAllRequest{ diff --git a/validator/benefactor/kind_box_req/get_test.go b/validator/benefactor/kind_box_req/get_test.go index 5c3673d9..af6dc03a 100644 --- a/validator/benefactor/kind_box_req/get_test.go +++ b/validator/benefactor/kind_box_req/get_test.go @@ -1 +1,83 @@ package benefactorkindboxreqvalidator + +import ( + "context" + "errors" + "testing" + + "git.gocasts.ir/ebhomengo/niki/entity" + param "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box_req" + "github.com/stretchr/testify/assert" +) + +func TestValidator_ValidateGetRequest(t *testing.T) { + mockRepository := NewMockRepository(t) + mockAddressSvc := NewMockAddressSvc(t) + mockReferTimeSvc := NewMockReferTimeSvc(t) + validator := New(mockAddressSvc, mockReferTimeSvc, mockRepository) + ctx := context.Background() + + t.Run("Successful validation", func(t *testing.T) { + req := param.KindBoxReqGetRequest{ + BenefactorID: 1, + KindBoxReqID: 1, + } + + mockRepository.EXPECT().GetKindBoxReqByID(ctx, req.KindBoxReqID).Return( + entity.KindBoxReq{ID: req.KindBoxReqID, BenefactorID: req.BenefactorID}, + nil, + ).Once() + fieldErrors, err := validator.ValidateGetRequest(ctx, req) + + assert.NoError(t, err) + assert.Nil(t, fieldErrors) + }) + + t.Run("Empty KindBoxReq id", func(t *testing.T) { + req := param.KindBoxReqGetRequest{ + BenefactorID: 1, + KindBoxReqID: 0, + } + + fieldErrors, err := validator.ValidateGetRequest(ctx, req) + + assert.Error(t, err) + assert.NotNil(t, fieldErrors) + assert.Contains(t, fieldErrors, "KindBoxReqID") + }) + + t.Run("KindBoxReq does not exist", func(t *testing.T) { + req := param.KindBoxReqGetRequest{ + BenefactorID: 1, + KindBoxReqID: 1, + } + + mockRepository.EXPECT().GetKindBoxReqByID(ctx, req.KindBoxReqID).Return( + entity.KindBoxReq{}, + errors.New("repo error"), + ).Once() + fieldErrors, err := validator.ValidateGetRequest(ctx, req) + + assert.Error(t, err) + assert.NotNil(t, fieldErrors) + assert.Contains(t, fieldErrors, "KindBoxReqID") + }) + + t.Run("KindBoxReq does not belong to benefactor", func(t *testing.T) { + req := param.KindBoxReqGetRequest{ + BenefactorID: 1, + KindBoxReqID: 1, + } + + mockRepository.EXPECT().GetKindBoxReqByID(ctx, req.KindBoxReqID).Return( + entity.KindBoxReq{BenefactorID: 2}, + nil, + ).Once() + + fieldErrors, err := validator.ValidateGetRequest(ctx, req) + + assert.Error(t, err) + assert.NotNil(t, fieldErrors) + assert.Contains(t, fieldErrors, "KindBoxReqID") + }) +} diff --git a/validator/benefactor/kind_box_req/mock_BenefactorSvc_test.go b/validator/benefactor/kind_box_req/mock_BenefactorSvc_test.go deleted file mode 100644 index 6c98a95c..00000000 --- a/validator/benefactor/kind_box_req/mock_BenefactorSvc_test.go +++ /dev/null @@ -1,95 +0,0 @@ -// Code generated by mockery v2.45.1. DO NOT EDIT. - -package benefactorkindboxreqvalidator - -import ( - context "context" - - benefactoreparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" - - mock "github.com/stretchr/testify/mock" -) - -// MockBenefactorSvc is an autogenerated mock type for the BenefactorSvc type -type MockBenefactorSvc struct { - mock.Mock -} - -type MockBenefactorSvc_Expecter struct { - mock *mock.Mock -} - -func (_m *MockBenefactorSvc) EXPECT() *MockBenefactorSvc_Expecter { - return &MockBenefactorSvc_Expecter{mock: &_m.Mock} -} - -// BenefactorExistByID provides a mock function with given fields: ctx, request -func (_m *MockBenefactorSvc) BenefactorExistByID(ctx context.Context, request benefactoreparam.BenefactorExistByIDRequest) (benefactoreparam.BenefactorExistByIDResponse, error) { - ret := _m.Called(ctx, request) - - if len(ret) == 0 { - panic("no return value specified for BenefactorExistByID") - } - - var r0 benefactoreparam.BenefactorExistByIDResponse - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, benefactoreparam.BenefactorExistByIDRequest) (benefactoreparam.BenefactorExistByIDResponse, error)); ok { - return rf(ctx, request) - } - if rf, ok := ret.Get(0).(func(context.Context, benefactoreparam.BenefactorExistByIDRequest) benefactoreparam.BenefactorExistByIDResponse); ok { - r0 = rf(ctx, request) - } else { - r0 = ret.Get(0).(benefactoreparam.BenefactorExistByIDResponse) - } - - if rf, ok := ret.Get(1).(func(context.Context, benefactoreparam.BenefactorExistByIDRequest) error); ok { - r1 = rf(ctx, request) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// MockBenefactorSvc_BenefactorExistByID_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'BenefactorExistByID' -type MockBenefactorSvc_BenefactorExistByID_Call struct { - *mock.Call -} - -// BenefactorExistByID is a helper method to define mock.On call -// - ctx context.Context -// - request benefactoreparam.BenefactorExistByIDRequest -func (_e *MockBenefactorSvc_Expecter) BenefactorExistByID(ctx interface{}, request interface{}) *MockBenefactorSvc_BenefactorExistByID_Call { - return &MockBenefactorSvc_BenefactorExistByID_Call{Call: _e.mock.On("BenefactorExistByID", ctx, request)} -} - -func (_c *MockBenefactorSvc_BenefactorExistByID_Call) Run(run func(ctx context.Context, request benefactoreparam.BenefactorExistByIDRequest)) *MockBenefactorSvc_BenefactorExistByID_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(benefactoreparam.BenefactorExistByIDRequest)) - }) - return _c -} - -func (_c *MockBenefactorSvc_BenefactorExistByID_Call) Return(_a0 benefactoreparam.BenefactorExistByIDResponse, _a1 error) *MockBenefactorSvc_BenefactorExistByID_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *MockBenefactorSvc_BenefactorExistByID_Call) RunAndReturn(run func(context.Context, benefactoreparam.BenefactorExistByIDRequest) (benefactoreparam.BenefactorExistByIDResponse, error)) *MockBenefactorSvc_BenefactorExistByID_Call { - _c.Call.Return(run) - return _c -} - -// NewMockBenefactorSvc creates a new instance of MockBenefactorSvc. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewMockBenefactorSvc(t interface { - mock.TestingT - Cleanup(func()) -}) *MockBenefactorSvc { - mock := &MockBenefactorSvc{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/validator/benefactor/kind_box_req/update_test.go b/validator/benefactor/kind_box_req/update_test.go index 7655658b..333372d6 100644 --- a/validator/benefactor/kind_box_req/update_test.go +++ b/validator/benefactor/kind_box_req/update_test.go @@ -14,10 +14,9 @@ import ( func TestValidator_ValidateUpdateRequest(t *testing.T) { mockRepository := NewMockRepository(t) - mockBenefactorSvc := NewMockBenefactorSvc(t) mockAddressSvc := NewMockAddressSvc(t) mockReferTimeSvc := NewMockReferTimeSvc(t) - validator := New(mockBenefactorSvc, mockAddressSvc, mockReferTimeSvc, mockRepository) + validator := New(mockAddressSvc, mockReferTimeSvc, mockRepository) ctx := context.Background() t.Run("Successful validation", func(t *testing.T) { diff --git a/validator/benefactor/kind_box_req/validator.go b/validator/benefactor/kind_box_req/validator.go index a2d872f4..3e50719c 100644 --- a/validator/benefactor/kind_box_req/validator.go +++ b/validator/benefactor/kind_box_req/validator.go @@ -10,7 +10,6 @@ import ( "git.gocasts.ir/ebhomengo/niki/entity" params "git.gocasts.ir/ebhomengo/niki/param" addressparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/address" - param "git.gocasts.ir/ebhomengo/niki/param/benefactor/benefactor" refertimeparam "git.gocasts.ir/ebhomengo/niki/param/benefactor/refer_time" errmsg "git.gocasts.ir/ebhomengo/niki/pkg/err_msg" validation "github.com/go-ozzo/ozzo-validation/v4" @@ -21,11 +20,6 @@ const ( MaxKindBoxReq uint = 100 ) -//go:generate mockery --name BenefactorSvc -type BenefactorSvc interface { - BenefactorExistByID(ctx context.Context, request param.BenefactorExistByIDRequest) (param.BenefactorExistByIDResponse, error) -} - //go:generate mockery --name AddressSvc type AddressSvc interface { AddressExistByID(ctx context.Context, request addressparam.GetAddressByIDRequest) (addressparam.GetAddressByIDResponse, error) @@ -43,10 +37,9 @@ type Repository interface { } type Validator struct { - benefactorSvc BenefactorSvc - addressSvc AddressSvc - referTimeSvc ReferTimeSvc - repo Repository + addressSvc AddressSvc + referTimeSvc ReferTimeSvc + repo Repository } type ValidatorError struct { @@ -64,26 +57,8 @@ func (v ValidatorError) Error() string { return err } -func New(benefactorSvc BenefactorSvc, addressSvc AddressSvc, referTimeSvc ReferTimeSvc, repo Repository) Validator { - return Validator{benefactorSvc: benefactorSvc, addressSvc: addressSvc, referTimeSvc: referTimeSvc, repo: repo} -} - -func (v Validator) doesBenefactorExist(ctx context.Context) validation.RuleFunc { - return func(value interface{}) error { - benefactorID, ok := value.(uint) - if !ok { - return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong) - } - res, err := v.benefactorSvc.BenefactorExistByID(ctx, param.BenefactorExistByIDRequest{ID: benefactorID}) - if err != nil { - return fmt.Errorf(errmsg.ErrorMsgSomethingWentWrong) - } - if !res.Existed { - return fmt.Errorf(errmsg.ErrorMsgBenefactorNotFound) - } - - return nil - } +func New(addressSvc AddressSvc, referTimeSvc ReferTimeSvc, repo Repository) Validator { + return Validator{addressSvc: addressSvc, referTimeSvc: referTimeSvc, repo: repo} } func (v Validator) doesTypeExist(value interface{}) error {