I have a test method, where I would like to send Date values as url params, and then in cotroller to manipulate with such a data.
Test method:
@Test
public void getUsageCountersParam2Test() throws Exception {
String date = "2017-06-23 12:39:00";
MvcResult result = mockMvc.perform(get("/usages?dateFrom=" + date)
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()).andReturn();
ObjectMapper mapper = new ObjectMapper();
List<UsageCounterDetailsDto> list = mapper.readValue(result.getResponse().getContentAsString(), new TypeReference<List<UsageCounterDetailsDto>>() {
});
assertNotNull(list);
assertEquals(3, list.size());
}
Controller:
@RequestMapping(method = RequestMethod.GET)
public List<UsageCounterDetailsDto> getUsageCounters(
@RequestParam(name = "apiConsumerIdsList", required = false) List<Integer> apiConsumerIdsList,
@RequestParam(name = "serviceIdsList", required = false) List<Integer> serviceIdsList,
@RequestParam(name = "dateFrom", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date dateFrom,
@RequestParam(name = "dateTo", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date dateTo,
@RequestParam(name = "status", required = false) UsageCounterDetailsDto.Status status
) {
return counterService.getUsageCountersList(apiConsumerIdsList, serviceIdsList, dateFrom, dateTo, status);
}
I have based on two stack articles: how to pass date via url parameter - junit test with dates and How to accept Date params in a GET request to Spring MVC Controller?
But none worked properly. Can you help me out with this, please? I can even send Long values to controller as param if it is simplier