Model mapper возвращает Null в виде ключей JSON при создании тестовых случаев Mockito для контроллера - PullRequest
0 голосов
/ 25 сентября 2018

Я создаю проект весенней загрузки, в котором я использую модель mapper для преобразования моих сущностей в DTO.Все работает нормально, когда я делаю запрос GET через браузер.Ответ JSON правильный.Но, когда я пытаюсь создать тестовые случаи для того же самого, ключ JSON становится пустым со следующей ошибкой.

Причина: com.jayway.jsonpath.PathNotFoundException: Ожидается, что будет найден объект со свойством ['key'] в пути $ [0], но найдено' null '.Это не объект json в соответствии с JsonProvider: 'com.jayway.jsonpath.spi.json.JsonSmartJsonProvider'.

Мой код выглядит следующим образом::

Класс Resource / Controller-:

@SuppressWarnings(StringConstantsUtils.UNCHECKED)
@GetMapping(path = "/fleets/{fleetId}")
public ResponseEntity<List<FleetSelectDto>> getAllF(
        @RequestParam(name = StringConstantsUtils.COUNTRYCODE, required = false) final String countryCode,
        @RequestParam(name = StringConstantsUtils.DEALERCODE, required = false) final String dealerCd,
        @PathVariable final Long fleetId,
        @RequestParam(name = StringConstantsUtils.LANGUAGECODE, required = false) final String langCode)
        throws NoDataFoundException {
    final List<FleetSelectEntity> list = dropdownService.getAllFleets(countryCode, fleetId, dealerCd, langCode);
    if (null == list || list.isEmpty()) {
        throw new NoDataFoundException("Fleet Id- " + fleetId + StringConstantsUtils.NOT_FOUND);
    }
    final List<FleetSelectDto> fleetSelectList = (List<FleetSelectDto>) (Object) list.stream()
            .map(fleetSelectEntity -> convertToDto(fleetSelectEntity)).collect(Collectors.toList());
    return new ResponseEntity<>(fleetSelectList, HttpStatus.OK);
}

Сервисный код -:

@Override
public List<FleetSelectEntity> getAllFleets(final String countryCode,
        final Long fleetId, final String dealerCd, final String langCode) {
    log.info("Inside getAllFleets() of DropDownServiceImpl.Java");
    final List<Object> parameter = new ArrayList<>();
    parameter.add(CommonConstantUtils.INT_ZERO, countryCode);
    parameter.add(CommonConstantUtils.INT_ONE, fleetId);
    parameter.add(CommonConstantUtils.INT_TWO, dealerCd);
    parameter.add(CommonConstantUtils.INT_THREE, langCode);
    return dropRepo.getAllFleets(parameter);

}

Контрольный пример -:

@Test
public void test_get_allFleets_success() throws Exception {
    createFleetList();
    when(service.getAllFleets("US", 0L, "AB", "EN")).thenReturn(fleetList);
    mockMvc.perform(get(fleetFmURL,0))
            .andExpect(status().isOk())
            .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8_VALUE))
            .andExpect(jsonPath("$", hasSize(3))).andExpect(jsonPath("$.0.key", is(243)))
            .andExpect(jsonPath("$.0.label", is("FleetA")));

    verify(service, times(1)).getAllFleets("US", 0L, "AB", "EN");
    verifyNoMoreInteractions(service);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...