Есть ли допустимый вариант для тестирования контроллера с predicate
в нем?
@RestController
public class QueryLauncherController {
private QueryLauncherService queryLauncherService;
@Autowired
public QueryLauncherController(QueryLauncherService queryLauncherService) {
this.queryLauncherService = queryLauncherService;
}
@GetMapping("/queryLauncher/CMP")
public List<QueryLauncherDto> getLaunchersCompany(RTAdmin admin) {
return queryLauncherService.getLaunchersList(admin, QueryLauncher::getIsCompany);
}
}
Я пытался решить эту проблему с помощью any(Predicate.class)
, но IDE выделяет его как непроверенное назначение и выглядитдовольно тупойКод, который я написал для теста:
public void returnCompanyLinks_When_companyRequested() throws Exception {
when(queryLauncherService.getLaunchersList(eq(user), any(Predicate.class))).thenReturn(queryLauncherDtos);
mockMvc.perform(get(QUERY_LAUNCHER_URL + CMP).session(mockSession))
.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
.andExpect(content().json(new Gson().toJson(queryLauncherDtos)));
}
Цель состоит в том, чтобы запускать метод только в случае, когда QueryLauncher::getIsInvestor
.
List<QueryLauncherDto> getLaunchersList(RTAdmin admin, Predicate<QueryLauncher> launcherType);
Есть ли варианты сделать это?