userListLogic_mock_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package user
  2. import (
  3. "context"
  4. "errors"
  5. "testing"
  6. userModel "perms-system-server/internal/model/user"
  7. "perms-system-server/internal/testutil/mocks"
  8. "perms-system-server/internal/types"
  9. "github.com/stretchr/testify/assert"
  10. "go.uber.org/mock/gomock"
  11. )
  12. // TC-0129: 批量查询DB异常
  13. func TestUserList_Mock_FindMapError(t *testing.T) {
  14. ctrl := gomock.NewController(t)
  15. defer ctrl.Finish()
  16. dbErr := errors.New("db error")
  17. mockUser := mocks.NewMockSysUserModel(ctrl)
  18. mockUser.EXPECT().FindListByPage(gomock.Any(), int64(1), int64(20)).
  19. Return([]*userModel.SysUser{
  20. {Id: 1, Username: "u1"},
  21. {Id: 2, Username: "u2"},
  22. }, int64(2), nil)
  23. mockPM := mocks.NewMockSysProductMemberModel(ctrl)
  24. mockPM.EXPECT().FindMapByProductCodeUserIds(gomock.Any(), "pc", []int64{1, 2}).
  25. Return(nil, dbErr)
  26. svcCtx := mocks.NewMockServiceContext(mocks.MockModels{
  27. User: mockUser,
  28. ProductMember: mockPM,
  29. })
  30. logic := NewUserListLogic(context.Background(), svcCtx)
  31. resp, err := logic.UserList(&types.UserListReq{
  32. ProductCode: "pc",
  33. Page: 1,
  34. PageSize: 20,
  35. })
  36. assert.Error(t, err)
  37. assert.ErrorIs(t, err, dbErr)
  38. assert.Nil(t, resp)
  39. }