Я хочу написать интеграционный тест для моего метода обслуживания, но у меня есть некоторые проблемы с этим. У меня есть другие тесты, которые я хочу использовать как образец, но это все еще слишком сложно для меня, потому что в этом методе у меня есть различные виды возвращаемого элемента:
Это мой метод:
public List<PersonWithTeamsDto> peopelWithTeamsAssigned() {
List<Person> people = personRepository.findByTeamsNotEmpty();
return people.stream()
.map(person -> {
PersonWithTeamsDto dto = modelMapper.map(person, PersonWithTeamsDto.class);
dto.setTeams(mapTeams(person));
return dto;
}).collect(Collectors.toList());
}
Я хочу проверить этот метод !!
Я хочу сделать что-то вроде этого:
public void shouldAddPersonToTeam() {
// Given
TeamDto teamDto = new TeamDto(null, "Janek", "local", "wawa", 6);
PersonDto personDto = new PersonDto(null, "janek", "mucha", "email1@onet.com", "krakow", "Programing", "Developer");
Team team = teamService.createTeam(teamDto);
Person person = personService.addPerson(personDto);
// When
final long personId = person.getId();
teamService.addPersonsToTeams(team.getId(), personId);
entityManager.flush();
entityManager.clear();
// Then
Optional<Team> teamFromService = teamService.findTeamEntityById(team.getId());
assertThat(teamFromService.isPresent()).isTrue();
Set<Person> persons = teamFromService.get().getPersons();
assertThat(persons).hasSize(1);
assertThat(persons.stream().filter(person1 -> person1.getId() == personId).findAny()).isPresent();
}
Но на самом деле у меня есть это:
@Test
@Transactional
public void shouldReturnPeopleWithTeamsAssigned(){
// Given
TeamDto teamDto = new TeamDto(null, "Janek", "local", "wawa", 6);
PersonDto personDto = new PersonDto(null, "janek", "mucha", "email1@onet.com", "krakow", "Programing", "Developer");
Team team = teamService.createTeam(teamDto);
Person person = personService.addPerson(personDto);
//When
teamService.addPersonsToTeams(team.getId(),person.getId());
personService.peopelWithTeamsAssigned();
entityManager.flush();
entityManager.clear();
//Then
List<PersonWithTeamsDto> personWithTeamsDtos = personService.peopelWithTeamsAssigned();
assertThat(personWithTeamsDtos.contains();
}