package org.zalando.catwatch.backend.repo; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.zalando.catwatch.backend.model.Project; import org.zalando.catwatch.backend.repo.builder.ProjectBuilder; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Optional; import static org.hamcrest.Matchers.equalTo; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import static org.zalando.catwatch.backend.repo.builder.BuilderUtil.*; public class ProjectRepositoryIT extends AbstractRepositoryIT { private final Logger logger = LoggerFactory.getLogger(ProjectRepositoryIT.class); @Autowired private ProjectRepository repository; @Test public void learningtestSaveAndLoad() throws Exception { // given repository.deleteAll(); Long gitHubProjectId = freshId(); String name = "testProject"; String language = randomLanguage(); Integer forksCount = random(1, 4); Integer starsCount = random(1, 10); Integer commitsCount = random(1, 1000); Integer contributionCount = random(1, 1000); Integer externalContributionCount = random(0, contributionCount); Integer score = random(1, 100); List<String> language_list = new ArrayList<>(); language_list.add("Java"); language_list.add("Scala"); Project project = new ProjectBuilder(repository, new Date(), gitHubProjectId, name, language, forksCount, starsCount, commitsCount, contributionCount, score, externalContributionCount).organizationName("galanto").getProject(); project.setLanguageList(language_list); repository.save(project); // when Project loadedProject = repository.findOne(project.getId()); // then assertThat(loadedProject.getName(), equalTo("testProject")); } @Test public void testFindProjectsWithDifferentSnapshotDate() { // given repository.deleteAll(); new ProjectBuilder(repository) .snapshotDate(new Date(1000)) .organizationName("test1") .name("p1") .save(); new ProjectBuilder(repository) .snapshotDate(new Date(2000)) .organizationName("test2") .name("p2") .save(); // when then List<Project> projects1 = repository.findProjects("test1", Optional.empty(), Optional.empty()); assertEquals(1, projects1.size()); // when then List<Project> projects2 = repository.findProjects("test2", Optional.empty(), Optional.empty()); assertEquals(1, projects2.size()); } @Test public void testFindProjectsSnapshotDate(){ // given repository.deleteAll(); new ProjectBuilder(repository) .snapshotDate(new Date(1000)) .organizationName("test_org") .name("p1") .save(); new ProjectBuilder(repository) .snapshotDate(new Date(2000)) .organizationName("test_org") .name("p1") .save(); // when List<Project> projects = repository.findProjects("test_org", new Date(2000), Optional.empty(), Optional.empty()); // then assertEquals(1, projects.size()); } }