Skip to content

Commit

Permalink
feat: assign pet tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bookpanda committed Feb 2, 2024
1 parent c2af475 commit cb5296a
Showing 1 changed file with 100 additions and 6 deletions.
106 changes: 100 additions & 6 deletions src/app/service/image/image.service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@ import (

type ImageServiceTest struct {
suite.Suite
Image *imageProto.Image
Images []*imageProto.Image
PetId uuid.UUID
UploadProtoReq *imageProto.UploadImageRequest
UploadDtoReq *dto.UploadImageRequest
DeleteProtoReq *imageProto.DeleteImageRequest
Image *imageProto.Image
Images []*imageProto.Image
PetId uuid.UUID
UploadProtoReq *imageProto.UploadImageRequest
UploadDtoReq *dto.UploadImageRequest
DeleteProtoReq *imageProto.DeleteImageRequest
AssignPetProtoReq *imageProto.AssignPetRequest
AssignPetDtoReq *dto.AssignPetRequest

PetNotFoundErr *dto.ResponseErr
ImageNotFoundErr *dto.ResponseErr
Expand Down Expand Up @@ -82,6 +84,14 @@ func (t *ImageServiceTest) SetupTest() {
t.DeleteProtoReq = &imageProto.DeleteImageRequest{
Id: t.Image.Id,
}
t.AssignPetProtoReq = &imageProto.AssignPetRequest{
Ids: []string{faker.UUIDDigit(), faker.UUIDDigit(), faker.UUIDDigit()},
PetId: t.PetId.String(),
}
t.AssignPetDtoReq = &dto.AssignPetRequest{
Ids: t.AssignPetProtoReq.Ids,
PetId: t.AssignPetProtoReq.PetId,
}

t.PetNotFoundErr = &dto.ResponseErr{
StatusCode: http.StatusNotFound,
Expand Down Expand Up @@ -322,3 +332,87 @@ func (t *ImageServiceTest) TestDeleteInternalError() {
assert.Nil(t.T(), actual)
assert.Equal(t.T(), expected, err)
}

func (t *ImageServiceTest) TestAssignPetSuccess() {
protoReq := t.AssignPetProtoReq
protoResp := &imageProto.AssignPetResponse{Success: true}

expected := &dto.AssignPetResponse{Success: true}

client := imageMock.ImageClientMock{}
client.On("AssignPet", protoReq).Return(protoResp, nil)

svc := NewService(&client)
actual, err := svc.AssignPet(t.AssignPetDtoReq)

assert.Nil(t.T(), err)
assert.Equal(t.T(), expected, actual)
}

func (t *ImageServiceTest) TestAssignPetInvalidArgumentError() {
protoReq := t.AssignPetProtoReq

clientErr := status.Error(codes.InvalidArgument, constant.InvalidArgumentMessage)

expected := t.InvalidArgumentErr

client := imageMock.ImageClientMock{}
client.On("AssignPet", protoReq).Return(nil, clientErr)

svc := NewService(&client)
actual, err := svc.AssignPet(t.AssignPetDtoReq)

assert.Nil(t.T(), actual)
assert.Equal(t.T(), expected, err)
}

func (t *ImageServiceTest) TestAssignPetNotFoundError() {
protoReq := t.AssignPetProtoReq

clientErr := status.Error(codes.NotFound, constant.PetNotFoundMessage)

expected := t.PetNotFoundErr

client := imageMock.ImageClientMock{}
client.On("AssignPet", protoReq).Return(nil, clientErr)

svc := NewService(&client)
actual, err := svc.AssignPet(t.AssignPetDtoReq)

assert.Nil(t.T(), actual)
assert.Equal(t.T(), expected, err)
}

func (t *ImageServiceTest) TestAssignPetUnavailableServiceError() {
protoReq := t.AssignPetProtoReq

clientErr := status.Error(codes.Unavailable, constant.UnavailableServiceMessage)

expected := t.UnavailableServiceErr

client := imageMock.ImageClientMock{}
client.On("AssignPet", protoReq).Return(nil, clientErr)

svc := NewService(&client)
actual, err := svc.AssignPet(t.AssignPetDtoReq)

assert.Nil(t.T(), actual)
assert.Equal(t.T(), expected, err)
}

func (t *ImageServiceTest) TestAssignPetInternalError() {
protoReq := t.AssignPetProtoReq

clientErr := status.Error(codes.Internal, constant.InternalErrorMessage)

expected := t.InternalErr

client := imageMock.ImageClientMock{}
client.On("AssignPet", protoReq).Return(nil, clientErr)

svc := NewService(&client)
actual, err := svc.AssignPet(t.AssignPetDtoReq)

assert.Nil(t.T(), actual)
assert.Equal(t.T(), expected, err)
}

0 comments on commit cb5296a

Please sign in to comment.