]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-9986 Add back id to WS api/components/search_projects
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Mon, 16 Oct 2017 12:50:36 +0000 (14:50 +0200)
committerTeryk Bellahsene <teryk@users.noreply.github.com>
Mon, 16 Oct 2017 14:53:19 +0000 (16:53 +0200)
server/sonar-server/src/main/java/org/sonar/server/component/ws/SearchProjectsAction.java
server/sonar-server/src/main/resources/org/sonar/server/component/ws/search_projects-example.json
server/sonar-server/src/test/java/org/sonar/server/component/ws/SearchProjectsActionTest.java

index 3aabfa94b70240c7c1c952d084dd8ce2e9073cb7..d6faf28ef75f57ca1b2e3d0d435cfbc9801ea8f5 100644 (file)
@@ -115,8 +115,7 @@ public class SearchProjectsAction implements ComponentsWsAction {
         new Change("6.4", "The 'visibility' field is added"),
         new Change("6.5", "The 'filter' parameter now allows 'NO_DATA' as value for numeric metrics"),
         new Change("6.5", "Added the option 'analysisDate' for the 'sort' parameter"),
-        new Change("6.5", format("Value '%s' is added to parameter '%s'", LEAK_PERIOD_DATE, FIELDS)),
-        new Change("6.6", "The 'id' field is removed from the response"))
+        new Change("6.5", format("Value '%s' is added to parameter '%s'", LEAK_PERIOD_DATE, FIELDS)))
       .setHandler(this);
 
     action.createFieldsParam(POSSIBLE_FIELDS)
@@ -424,6 +423,7 @@ public class SearchProjectsAction implements ComponentsWsAction {
       wsComponent
         .clear()
         .setOrganization(organizationDto.getKey())
+        .setId(dbComponent.uuid())
         .setKey(dbComponent.getDbKey())
         .setName(dbComponent.name())
         .setVisibility(Visibility.getLabel(dbComponent.isPrivate()));
index ddb458d04ac3274c8583cd1209cb29b44dca1100..41d9cfa4c751ae2a3c7b2b234a41c187effea141 100644 (file)
@@ -7,6 +7,7 @@
   "components": [
     {
       "organization": "my-org-key-1",
+      "id": "AU-Tpxb--iU5OvuD2FLy",
       "key": "my_project",
       "name": "My Project 1",
       "isFavorite": true,
@@ -18,6 +19,7 @@
     },
     {
       "organization": "my-org-key-1",
+      "id": "AU-TpxcA-iU5OvuD2FLz",
       "key": "another_project",
       "name": "My Project 2",
       "isFavorite": false,
@@ -26,6 +28,7 @@
     },
     {
       "organization": "my-org-key-2",
+      "id": "AU-TpxcA-iU5OvuD2FL0",
       "key": "third_project",
       "name": "My Project 3",
       "isFavorite": false,
index 0f1c5e3989cb899999be0426a3c911ed10755f71..1428b905147f296314c8cac5d4a0c65b884cf375 100644 (file)
@@ -151,8 +151,7 @@ public class SearchProjectsActionTest {
       tuple("6.4", "The 'visibility' field is added"),
       tuple("6.5", "The 'filter' parameter now allows 'NO_DATA' as value for numeric metrics"),
       tuple("6.5", "Added the option 'analysisDate' for the 'sort' parameter"),
-      tuple("6.5", "Value 'leakPeriodDate' is added to parameter 'f'"),
-      tuple("6.6", "The 'id' field is removed from the response"));
+      tuple("6.5", "Value 'leakPeriodDate' is added to parameter 'f'"));
 
     Param organization = def.param("organization");
     assertThat(organization.isRequired()).isFalse();
@@ -205,23 +204,23 @@ public class SearchProjectsActionTest {
       .setName("My Project 1")
       .setTagsString("finance, java"),
       new Measure(coverage, c -> c.setValue(80d)));
-    insertProject(organization1Dto, c -> c
+    ComponentDto project2 = insertProject(organization1Dto, c -> c
       .setDbKey(KeyExamples.KEY_PROJECT_EXAMPLE_002)
       .setName("My Project 2"),
       new Measure(coverage, c -> c.setValue(90d)));
-    insertProject(organization2Dto, c -> c
+    ComponentDto project3 = insertProject(organization2Dto, c -> c
       .setDbKey(KeyExamples.KEY_PROJECT_EXAMPLE_003)
       .setName("My Project 3")
       .setTagsString("sales, offshore, java"),
       new Measure(coverage, c -> c.setValue(20d)));
     addFavourite(project1);
 
-    String result = ws.newRequest()
-      .setParam(Param.FACETS, COVERAGE)
-      .execute().getInput();
+    String jsonResult = ws.newRequest().setParam(Param.FACETS, COVERAGE).execute().getInput();
+    SearchProjectsWsResponse protobufResult = ws.newRequest().setParam(Param.FACETS, COVERAGE).executeProtobuf(SearchProjectsWsResponse.class);
 
-    assertJson(result).withStrictArrayOrder().isSimilarTo(ws.getDef().responseExampleAsString());
-    assertJson(ws.getDef().responseExampleAsString()).withStrictArrayOrder().isSimilarTo(result);
+    assertJson(jsonResult).withStrictArrayOrder().ignoreFields("id").isSimilarTo(ws.getDef().responseExampleAsString());
+    assertJson(ws.getDef().responseExampleAsString()).ignoreFields("id").withStrictArrayOrder().isSimilarTo(jsonResult);
+    assertThat(protobufResult.getComponentsList()).extracting(Component::getId).containsExactly(project1.uuid(), project2.uuid(), project3.uuid());
   }
 
   @Test