I am trying to get user from database using spring boot REST controller.
I am passing the id as a request parameter. If i pass a value 0004
it treats it as 4
and the tests pass.
However if I pass a value as 0030
it treats as 24
.
ControllerTest.java
@Test
public void get_user_by_id_should_return_user_with_id_0030() throws Exception {
User user = new User(0030, "sample@example.com", LocalDate.parse("2018-12-27"), "Kitchen Assistant", Role.user);
when(userServiceMock.searchByemployeeId(0030)).thenReturn(user);
MockHttpServletRequestBuilder getUserByEmployeeId = get("/admin/user?employeeId=0030");
getUserByEmployeeId.header("Authorization", "Bearer " + adminJwtToken);
JSONObject expectedResponse = new JSONObject();
expectedResponse.put("employeeId", 0030);
expectedResponse.put("companyEmailId", "sample@example.com");
expectedResponse.put("dateOfJoining", "2018-12-27");
expectedResponse.put("designation", "Kitchen Assistant");
expectedResponse.put("role", "user");
mockMvc.perform(getUserByEmployeeId).andExpect(status().isOk());
verify(userServiceMock, times(1)).searchByemployeeId(0030);
}
Controller.java
@GetMapping(path = "/admin/user",params = "employeeId")
public ResponseEntity<User> getUserWithEmploeeId(@RequestParam Integer employeeId) {
User user = userService.searchByemployeeId(employeeId);
return new ResponseEntity<>(user, OK);
}
However, passing 0030 as a parameter does not treat as 30. It treats 30 as 24, I do not understand why.
Error:
Actual invocations have different arguments:
userService bean.searchByemployeeId(30);
-> at com.example.controller.AdminController.getUserWithEmploeeId(AdminController.java:85)
Comparison Failure:
<Click to see difference>
Argument(s) are different! Wanted:
userService bean.searchByemployeeId(24);
-> at com.example.controller.controller.AdminControllerTest.get_user_by_id_should_return_user_with_id_0030(AdminControllerTest.java:1595)
Actual invocations have different arguments:
userService bean.searchByemployeeId(30);
-> at com.example.controller.controller.AdminController.getUserWithEmploeeId(AdminController.java:85)