package org.dicadeveloper.weplantaforest.user; import static org.assertj.core.api.Assertions.assertThat; import org.dicadeveloper.weplantaforest.admin.codes.Team; import org.dicadeveloper.weplantaforest.admin.codes.TeamRepository; import org.dicadeveloper.weplantaforest.common.testSupport.CleanDbRule; import org.dicadeveloper.weplantaforest.testsupport.DbInjecter; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.DirtiesContext.ClassMode; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest({ "spring.profiles.active=test" }) @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD) public class UserRepositoryIntegrationTest { @Rule @Autowired public CleanDbRule _cleanDbRule; @Autowired public DbInjecter _dbInjecter; @Autowired private UserRepository _userRepository; @Autowired private TeamRepository _teamRepository; @Test public void testIfUserExistsToFalse() { long exists = _userRepository.userExists("Adam"); assertThat(exists).isEqualTo(0); } @Test public void testIfUserExistsToTrue() { _dbInjecter.injectUser("Adam"); long exists = _userRepository.userExists("Adam"); assertThat(exists).isEqualTo(1); } @Test public void testGetUserDetailsWithTeam() { _dbInjecter.injectUser("Adam", 100000L, OrganizationType.PRIVATE); _dbInjecter.injectUser("Bert"); User adam = _userRepository.findOne(1L); Team team = new Team(); team.setName("team"); team.setAdmin(_userRepository.findOne(2L)); _teamRepository.save(team); adam.setTeam(team); _userRepository.save(adam); UserReportData userDetails = _userRepository.getUserDetails("Adam"); assertThat(userDetails.userName).isEqualTo("Adam"); assertThat(userDetails.teamName).isEqualTo("team"); } @Test public void testGetUserDetailsWithoutTeam() { _dbInjecter.injectUser("Adam", 100000L, OrganizationType.PRIVATE); UserReportData userDetails = _userRepository.getUserDetails("Adam"); assertThat(userDetails.userName).isEqualTo("Adam"); assertThat(userDetails.teamName).isEqualTo(""); } }