From 5055e0927768d9b2ca73760a5f3810599a381cd0 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Lievremont Date: Thu, 16 Apr 2015 15:19:39 +0200 Subject: [PATCH] SONAR-6399 Make exporters and importers public WS --- .../ws/QProfileExportAction.java | 5 +++-- .../ws/QProfileExportersAction.java | 1 - .../ws/QProfileImportersAction.java | 1 - .../ws/QProfileExportActionTest.java | 18 +++++++++--------- .../qualityprofile/ws/QProfilesWsTest.java | 1 - 5 files changed, 12 insertions(+), 14 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileExportAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileExportAction.java index 7174e369b38..2af41d993ee 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileExportAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileExportAction.java @@ -44,7 +44,7 @@ public class QProfileExportAction implements BaseQProfileWsAction { private static final String PARAM_PROFILE_NAME = "name"; private static final String PARAM_LANGUAGE = "language"; - private static final String PARAM_FORMAT = "format"; + private static final String PARAM_FORMAT = "exporterKey"; private final DbClient dbClient; @@ -89,7 +89,8 @@ public class QProfileExportAction implements BaseQProfileWsAction { } if (!exporterKeys.isEmpty()) { create.createParam(PARAM_FORMAT) - .setDescription("Output format. If left empty, the same format as api/qualityprofiles/backup is used.") + .setDescription("Output format. If left empty, the same format as api/qualityprofiles/backup is used. " + + "Possible values are described by api/qualityprofiles/exporters.") .setPossibleValues(exporterKeys); } } diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileExportersAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileExportersAction.java index 74a567d96af..76324f74849 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileExportersAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileExportersAction.java @@ -42,7 +42,6 @@ public class QProfileExportersAction implements BaseQProfileWsAction { context.createAction("exporters") .setDescription("Lists available profile export formats.") .setHandler(this) - .setInternal(true) .setResponseExample(getClass().getResource("example-exporters.json")) .setSince("5.2"); } diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileImportersAction.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileImportersAction.java index 90ba1f4459e..8b9389b4cc4 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileImportersAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/QProfileImportersAction.java @@ -42,7 +42,6 @@ public class QProfileImportersAction implements BaseQProfileWsAction { controller.createAction("importers") .setSince("5.2") .setDescription("List supported importers.") - .setInternal(true) .setResponseExample(getClass().getResource("example-importers.json")) .setHandler(this); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileExportActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileExportActionTest.java index 6033875c4dd..20b18432e73 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileExportActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfileExportActionTest.java @@ -143,7 +143,7 @@ public class QProfileExportActionTest { session.commit(); Result result = wsTester.newGetRequest("api/qualityprofiles", "export") - .setParam("language", profile.getLanguage()).setParam("name", profile.getName()).setParam("format", "polop").execute(); + .setParam("language", profile.getLanguage()).setParam("name", profile.getName()).setParam("exporterKey", "polop").execute(); assertThat(result.outputAsString()).isEqualTo("Profile " + profile.getName() + " exported by polop"); } @@ -156,7 +156,7 @@ public class QProfileExportActionTest { session.commit(); Result result = wsTester.newGetRequest("api/qualityprofiles", "export") - .setParam("language", "xoo").setParam("format", "polop").execute(); + .setParam("language", "xoo").setParam("exporterKey", "polop").execute(); assertThat(result.outputAsString()).isEqualTo("Profile " + profile2.getName() + " exported by polop"); } @@ -164,7 +164,7 @@ public class QProfileExportActionTest { @Test(expected = NotFoundException.class) public void fail_on_unknown_profile() throws Exception { wsTester.newGetRequest("api/qualityprofiles", "export") - .setParam("language", "xoo").setParam("format", "polop").execute(); + .setParam("language", "xoo").setParam("exporterKey", "polop").execute(); } @Test(expected = IllegalArgumentException.class) @@ -174,25 +174,25 @@ public class QProfileExportActionTest { session.commit(); wsTester.newGetRequest("api/qualityprofiles", "export") - .setParam("language", "xoo").setParam("format", "unknown").execute(); + .setParam("language", "xoo").setParam("exporterKey", "unknown").execute(); } @Test public void do_not_fail_when_no_exporters() throws Exception { - exporters = new QProfileExporters(null, null, null, new ProfileExporter[0], null); - wsTester = new WsTester(new QProfilesWs(mock(RuleActivationActions.class), + QProfileExporters myExporters = new QProfileExporters(null, null, null, new ProfileExporter[0], null); + WsTester myWsTester = new WsTester(new QProfilesWs(mock(RuleActivationActions.class), mock(BulkRuleActivationActions.class), mock(ProjectAssociationActions.class), - new QProfileExportAction(dbClient, new QProfileFactory(dbClient), backuper, exporters, LanguageTesting.newLanguages("xoo")))); + new QProfileExportAction(dbClient, new QProfileFactory(dbClient), backuper, myExporters, LanguageTesting.newLanguages("xoo")))); - Action export = wsTester.controller("api/qualityprofiles").action("export"); + Action export = myWsTester.controller("api/qualityprofiles").action("export"); assertThat(export.params()).hasSize(2); QualityProfileDto profile = QProfileTesting.newXooP1(); qualityProfileDao.insert(session, profile); session.commit(); - wsTester.newGetRequest("api/qualityprofiles", "export").setParam("language", "xoo").setParam("name", profile.getName()).execute(); + myWsTester.newGetRequest("api/qualityprofiles", "export").setParam("language", "xoo").setParam("name", profile.getName()).execute(); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java index 254793b6639..2eb2115666d 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/qualityprofile/ws/QProfilesWsTest.java @@ -215,7 +215,6 @@ public class QProfilesWsTest { WebService.Action importers = controller.action("importers"); assertThat(importers).isNotNull(); assertThat(importers.isPost()).isFalse(); - assertThat(importers.isInternal()).isTrue(); assertThat(importers.params()).isEmpty(); assertThat(importers.responseExampleAsString()).isNotEmpty(); } -- 2.39.5