forked from ebhomengo/niki
1
0
Fork 0
niki/validator/benefactor/kind_box/get_all_test.go

85 lines
2.1 KiB
Go
Raw Normal View History

package benefactorkindboxvalidator
import (
"testing"
params "git.gocasts.ir/ebhomengo/niki/param"
param "git.gocasts.ir/ebhomengo/niki/param/benefactor/kind_box"
"github.com/stretchr/testify/assert"
)
func TestValidator_ValidateGetAll(t *testing.T) {
mockRepository := NewMockRepository(t)
mockBenefactorSvc := NewMockBenefactorSvc(t)
mockAddressSvc := NewMockAddressSvc(t)
mockReferTimeSvc := NewMockReferTimeSvc(t)
validator := New(mockRepository, mockBenefactorSvc, mockAddressSvc, mockReferTimeSvc)
t.Run("Successful validation", func(t *testing.T) {
req := param.KindBoxGetAllRequest{
Pagination: params.PaginationRequest{},
Sort: params.SortRequest{
Field: "id",
Direction: "asc",
},
Filter: map[string]any{"id": 1},
}
fieldErrors, err := validator.ValidateGetAll(req)
assert.NoError(t, err)
assert.Nil(t, fieldErrors)
})
t.Run("Invalid sort field", func(t *testing.T) {
req := param.KindBoxGetAllRequest{
Pagination: params.PaginationRequest{},
Sort: params.SortRequest{
Field: "invalid",
Direction: "asc",
},
Filter: map[string]any{"id": 1},
}
fieldErrors, err := validator.ValidateGetAll(req)
assert.Error(t, err)
assert.NotNil(t, fieldErrors)
assert.Contains(t, fieldErrors, "Sort")
})
t.Run("Invalid sort direction", func(t *testing.T) {
req := param.KindBoxGetAllRequest{
Pagination: params.PaginationRequest{},
Sort: params.SortRequest{
Field: "id",
Direction: "invalid",
},
Filter: map[string]any{"id": 1},
}
fieldErrors, err := validator.ValidateGetAll(req)
assert.Error(t, err)
assert.NotNil(t, fieldErrors)
assert.Contains(t, fieldErrors, "Sort")
})
t.Run("Invalid filter", func(t *testing.T) {
req := param.KindBoxGetAllRequest{
Pagination: params.PaginationRequest{},
Sort: params.SortRequest{
Field: "id",
Direction: "desc",
},
Filter: map[string]any{"invalid": 1},
}
fieldErrors, err := validator.ValidateGetAll(req)
assert.Error(t, err)
assert.NotNil(t, fieldErrors)
assert.Contains(t, fieldErrors, "Filter")
})
}