diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2017-01-27 16:51:21 +0100 |
---|---|---|
committer | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2017-01-31 14:39:53 +0100 |
commit | be45c77d7b596d2afaf7d5981d13007a100faf24 (patch) | |
tree | 677e5bbfddef54e3d32255360f80667fa5fdeee8 /sonar-db/src/test/java | |
parent | 6d29fdc8541bef595d92a89d4191979ec24a6012 (diff) | |
download | sonarqube-be45c77d7b596d2afaf7d5981d13007a100faf24.tar.gz sonarqube-be45c77d7b596d2afaf7d5981d13007a100faf24.zip |
SONAR-8650 add organization parameter to api/projects/ghosts
Diffstat (limited to 'sonar-db/src/test/java')
-rw-r--r-- | sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java | 39 | ||||
-rw-r--r-- | sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java | 16 |
2 files changed, 47 insertions, 8 deletions
diff --git a/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java b/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java index 646a54be31a..2ac7254b0ce 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java @@ -49,6 +49,7 @@ import static java.util.Collections.singletonList; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.guava.api.Assertions.assertThat; import static org.sonar.db.component.ComponentTesting.newDeveloper; +import static org.sonar.db.component.ComponentTesting.newDirectory; import static org.sonar.db.component.ComponentTesting.newFileDto; import static org.sonar.db.component.ComponentTesting.newModuleDto; import static org.sonar.db.component.ComponentTesting.newProjectCopy; @@ -596,13 +597,39 @@ public class ComponentDaoTest { @Test public void select_ghost_projects() { - db.prepareDbUnit(getClass(), "select_ghost_projects.xml"); - - List<ComponentDto> result = underTest.selectGhostProjects(dbSession, 0, 10, null); + OrganizationDto organization = db.organizations().insert(); - assertThat(result).hasSize(1); - assertThat(result.get(0).key()).isEqualTo("org.ghost.project"); - assertThat(underTest.countGhostProjects(dbSession, null)).isEqualTo(1); + // ghosts because has at least one snapshot with status U but none with status P + ComponentDto ghostProject = db.components().insertProject(organization); + db.components().insertSnapshot(ghostProject, dto -> dto.setStatus("U")); + db.components().insertSnapshot(ghostProject, dto -> dto.setStatus("U")); + ComponentDto ghostProject2 = db.components().insertProject(organization); + db.components().insertSnapshot(ghostProject2, dto -> dto.setStatus("U")); + ComponentDto disabledGhostProject = db.components().insertProject(dto -> dto.setEnabled(false)); + db.components().insertSnapshot(disabledGhostProject, dto -> dto.setStatus("U")); + + ComponentDto project1 = db.components().insertProject(organization); + db.components().insertSnapshot(project1, dto -> dto.setStatus("P")); + db.components().insertSnapshot(project1, dto -> dto.setStatus("U")); + ComponentDto module = db.components().insertComponent(newModuleDto(project1)); + ComponentDto dir = db.components().insertComponent(newDirectory(module, "foo")); + db.components().insertComponent(newFileDto(module, dir, "bar")); + + ComponentDto provisionedProject = db.components().insertProject(organization); + + // not a ghost because has at least one snapshot with status P + ComponentDto project2 = db.components().insertProject(organization); + db.components().insertSnapshot(project2, dto -> dto.setStatus("P")); + + // not a ghost because it's not a project + ComponentDto view = db.components().insertView(organization); + db.components().insertSnapshot(view, dto -> dto.setStatus("U")); + db.components().insertComponent(newProjectCopy("do", project1, view)); + + assertThat(underTest.selectGhostProjects(dbSession, organization.getUuid(), null, 0, 10)) + .extracting(ComponentDto::uuid) + .containsOnly(ghostProject.uuid(), ghostProject2.uuid(), disabledGhostProject.uuid()); + assertThat(underTest.countGhostProjects(dbSession, organization.getUuid(), null)).isEqualTo(3); } @Test diff --git a/sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java b/sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java index 67d438cb847..d8f93680b66 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java @@ -95,7 +95,7 @@ public class ComponentDbTester { } public ComponentDto insertView(OrganizationDto organizationDto) { - return insertComponentImpl(newView(organizationDto), dto -> {}); + return insertComponentImpl(newView(organizationDto), noExtraConfiguration()); } public ComponentDto insertView(OrganizationDto organizationDto, Consumer<ComponentDto> dtoPopulator) { @@ -111,7 +111,7 @@ public class ComponentDbTester { } public ComponentDto insertDeveloper(String name, Consumer<ComponentDto> dtoPopulator) { - return insertComponentImpl(newDeveloper(db.getDefaultOrganization(), name), noExtraConfiguration()); + return insertComponentImpl(newDeveloper(db.getDefaultOrganization(), name), dtoPopulator); } public ComponentDto insertDeveloper(String name) { @@ -145,4 +145,16 @@ public class ComponentDbTester { db.commit(); return snapshot; } + + public SnapshotDto insertSnapshot(ComponentDto componentDto) { + return insertSnapshot(componentDto, noExtraConfiguration()); + } + + public SnapshotDto insertSnapshot(ComponentDto componentDto, Consumer<SnapshotDto> consumer) { + SnapshotDto snapshotDto = SnapshotTesting.newAnalysis(componentDto); + consumer.accept(snapshotDto); + SnapshotDto snapshot = dbClient.snapshotDao().insert(dbSession, snapshotDto); + db.commit(); + return snapshot; + } } |