Я хочу протестировать метод получения списка объектов в соответствии со списком заданных строк.Мой оригинальный метод:
@RequestMapping(value = "/fil/", method = RequestMethod.POST)
@ResponseStatus(value = HttpStatus.OK)
public ResponseEntity<List<Tag>> findAllByCpe(@RequestBody Fil fil) {
return ResponseEntity.ok(tagRepository.findAllBy(fil));
}
Запрос (tagRepository):
@Query("SELECT t FROM Tag t WHERE (t.cpe IS NULL OR t.cpe IN (:#{#fil.cpes}))")
List<Tag> findAllBy(@Param("fil") Fil fil);
Fil (Класс, содержащий список строк, по которым я хочу выполнить поиск)
@Getter
@Setter
@AllArgsConstructor
public class Fil {
public Fil() {
}
@NotNull
private List<String> cpes;
}
Я написал интеграционный тест:
@Test
public void FindTagGivenListOfCpes() {
//GIVEN
List<String> cpes = new ArrayList<>();
cpes .add("C1");
cpes .add("C2");
cpes .add("C3");
List<Tag> tagList = (List<Tag>) tagTestBuilder
.saved()
.itemList()
.build();
//WHEN
ResponseEntity<Tag[]> response = restTemplate.postForEntity(TagsResourceConstants.PATH + "/fil/", cpes, Tag[].class);
//THEN
assertEquals(HttpStatus.OK.value(), response.getStatusCodeValue());
}