1

How to create Unit test cases for “GetListOfUsers()” function of “UserService.go“ file. Facing issue in creating dummy aerospike.Recordset object

this is the test file

Sample testfile

func (suite *UserServiceTestSuite) TestGetListOfUsers() {
suite.mockUserRepository.EXPECT().QueryDataEquality(models.UserSet, "t_id", “test_team”).Return(Dummy_RecordSet_Object, nil)
// how we can create dummy aerospike.Recordset object ?
userList, err := suite.userService.GetListOfUsers(suite.context, “test_team”)
// suite.Error(err)
}

This is the user repository

UsersRepository.go

func (a *aerospike) QueryDataEquality(setName, binName, binData string) (*aero.Recordset, error) {
stm := aero.NewStatement(a.Namespace, setName)
err := stm.SetFilter(aero.NewEqualFilter(binName, binData))
if err != nil {
    return nil, err
}
recordset, err := a.client.Query(nil, stm)
if err != nil {
   return nil, err
}
return recordset, nil
}

this is the user service code

UserService.go

    func (us usersService) GetListOfUsers(ctx *gin.Context, teamId string) ([]models.Users, error) {
    var listOfUsers []models.Users
    records, err := us.aeroClient.QueryDataEquality(models.UserSet, "t_id", teamId)
    if err != nil {
        return nil, err
    }
    for res := range records.Results() {
        if res.Err != nil {
           return nil, res.Err
        } else {
            jsonStr, err := json.Marshal(res.Record.Bins)
            if err != nil {
                return nil, err
            }
            var tempUser models.Users
            if err := json.Unmarshal(jsonStr, &tempUser); 
err != nil {
                continue
            }
        listOfUsers = append(listOfUsers, tempUser)
        }
    }
    return listOfUsers, nil
}
Prashant Luhar
  • 299
  • 5
  • 19
A_Gour
  • 21
  • 4
  • Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking. – Community Jul 25 '23 at 23:08

0 Answers0