aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-db/src/test/java
diff options
context:
space:
mode:
authorSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-01-27 16:51:21 +0100
committerSébastien Lesaint <sebastien.lesaint@sonarsource.com>2017-01-31 14:39:53 +0100
commitbe45c77d7b596d2afaf7d5981d13007a100faf24 (patch)
tree677e5bbfddef54e3d32255360f80667fa5fdeee8 /sonar-db/src/test/java
parent6d29fdc8541bef595d92a89d4191979ec24a6012 (diff)
downloadsonarqube-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.java39
-rw-r--r--sonar-db/src/test/java/org/sonar/db/component/ComponentDbTester.java16
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;
+ }
}