package org.dicadeveloper.weplantaforest.projects;
import static org.assertj.core.api.Assertions.assertThat;
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.data.domain.Page;
import org.springframework.data.domain.PageRequest;
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 ProjectRepositoryIntegrationTest {
@Rule
@Autowired
public CleanDbRule _cleanDbRule;
@Autowired
public DbInjecter _dbInjecter;
@Autowired
public ProjectRepository _projectRepository;
@Test
public void testGetActiveProjects() {
_dbInjecter.injectUser("Adam");
_dbInjecter.injectUser("Bert");
_dbInjecter.injectProject("Adam's project", "Adam", "n1 project", true, 0, 0);
_dbInjecter.injectProject("Bert's project", "Bert", "n1 project", true, 0, 0);
_dbInjecter.injectProject("Adam's 2nd project", "Adam", "n1 project", false, 0, 0);
_dbInjecter.injectProject("Bert's 2nd project", "Bert", "n1 project", false, 0, 0);
_dbInjecter.injectProject("Bert's 3rd project", "Bert", "n1 project", false, 0, 0);
Page<Project> activeProjectList = _projectRepository.active(new PageRequest(0, 5));
assertThat(activeProjectList).isNotNull();
assertThat(activeProjectList.getTotalElements()).isEqualTo(2);
assertThat(activeProjectList.getTotalPages()).isEqualTo(1);
assertThat(activeProjectList.getContent()
.size()).isEqualTo(2);
}
}