У меня есть ednpoint, который возвращает void, но завернутый в ответ в формате csv
public void findStatus(@PathVariable("id") Long locationId, HttpServletResponse response) throws Exception {
log.info("Finding Status Information with id = {}.", locationId);
Status status = statusRepository.findOneByLocationId(locationId);
WriteCsvToResponse.writeStatus(response.getWriter(), status);
}
}
И класс, который заключает этот ответ в CSV:
public static void writeStatus(PrintWriter writer, Status status) {
try {
ColumnPositionMappingStrategy mapStrategy
= new ColumnPositionMappingStrategy();
mapStrategy.setType(Status.class);
String[] columns = new String[]{"id", "date", "status"};
mapStrategy.setColumnMapping(columns);
StatefulBeanToCsv btcsv = new StatefulBeanToCsvBuilder(writer)
.withQuotechar(CSVWriter.NO_QUOTE_CHARACTER)
.withMappingStrategy(mapStrategy)
.withSeparator(',')
.build();
btcsv.write(status);
} catch (CsvException ex) {
LOGGER.error("Error mapping Bean to CSV", ex);
}
}
и хранилище:
public interface statusRepository extends CrudRepository<RealObject, Long> {
@Query("SELECT new Status(r.id, r.date, r.status) " +
" FROM RealObject r " +
" WHERE r.id = :id" +
" ORDER BY r.date "
)
Status findOneByLocationId(@Param("id") Long locationId);
}
Мне нужно выполнить интеграционное тестирование с использованием Mockito, и я не знаю, как это сделать. Любые идеи, как проверить метод, который предполагает вернуть void, но на самом деле возвращает список объектов в формате CSV? Должен ли я также проверить запрос? как это сделать в мокито?