summaryrefslogtreecommitdiffstats
path: root/sonar-ws
diff options
context:
space:
mode:
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2016-09-06 17:00:25 +0200
committerTeryk Bellahsene <teryk.bellahsene@sonarsource.com>2016-09-07 17:06:10 +0200
commit7ef29c10d2efaaa9e092c90b1ac64e37f8dd056c (patch)
treeffbe9356501cd38b3a5c630cff41af7c298d9d6e /sonar-ws
parent037cba432e43e3c92259e51b53b9149029e40865 (diff)
downloadsonarqube-7ef29c10d2efaaa9e092c90b1ac64e37f8dd056c.tar.gz
sonarqube-7ef29c10d2efaaa9e092c90b1ac64e37f8dd056c.zip
SONAR-7984 WS api/server_id/generate
Diffstat (limited to 'sonar-ws')
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/serverid/GenerateRequest.java70
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/serverid/package-info.java27
-rw-r--r--sonar-ws/src/main/protobuf/ws-serverid.proto7
-rw-r--r--sonar-ws/src/test/java/org/sonarqube/ws/client/serverid/GenerateRequestTest.java65
4 files changed, 166 insertions, 3 deletions
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/serverid/GenerateRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/serverid/GenerateRequest.java
new file mode 100644
index 00000000000..57b29d62b15
--- /dev/null
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/serverid/GenerateRequest.java
@@ -0,0 +1,70 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+package org.sonarqube.ws.client.serverid;
+
+import static com.google.common.base.Preconditions.checkArgument;
+
+public class GenerateRequest {
+ private final String organization;
+ private final String ip;
+
+ public GenerateRequest(Builder builder) {
+ this.organization = builder.organization;
+ this.ip = builder.ip;
+ }
+
+ public String getOrganization() {
+ return organization;
+ }
+
+ public String getIp() {
+ return ip;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private String organization;
+ private String ip;
+
+ private Builder() {
+ // enforce static constructor
+ }
+
+ public Builder setOrganization(String organization) {
+ this.organization = organization;
+ return this;
+ }
+
+ public Builder setIp(String ip) {
+ this.ip = ip;
+ return this;
+ }
+
+ public GenerateRequest build() {
+ checkArgument(organization != null && !organization.isEmpty(), "Organization must not be null or empty");
+ checkArgument(ip != null && !ip.isEmpty(), "IP must not be null or empty");
+ return new GenerateRequest(this);
+ }
+ }
+}
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/serverid/package-info.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/serverid/package-info.java
new file mode 100644
index 00000000000..2ea55636428
--- /dev/null
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/serverid/package-info.java
@@ -0,0 +1,27 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+
+
+@ParametersAreNonnullByDefault
+package org.sonarqube.ws.client.serverid;
+
+import javax.annotation.ParametersAreNonnullByDefault;
+
diff --git a/sonar-ws/src/main/protobuf/ws-serverid.proto b/sonar-ws/src/main/protobuf/ws-serverid.proto
index 18a2a813ef6..af02b223d86 100644
--- a/sonar-ws/src/main/protobuf/ws-serverid.proto
+++ b/sonar-ws/src/main/protobuf/ws-serverid.proto
@@ -33,6 +33,7 @@ message ShowWsResponse {
optional bool invalidServerId = 5;
}
-
-
-
+// Response of POST api/server_id/generate
+message GenerateWsResponse {
+ optional string serverId = 1;
+}
diff --git a/sonar-ws/src/test/java/org/sonarqube/ws/client/serverid/GenerateRequestTest.java b/sonar-ws/src/test/java/org/sonarqube/ws/client/serverid/GenerateRequestTest.java
new file mode 100644
index 00000000000..ecbf2588ae3
--- /dev/null
+++ b/sonar-ws/src/test/java/org/sonarqube/ws/client/serverid/GenerateRequestTest.java
@@ -0,0 +1,65 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+package org.sonarqube.ws.client.serverid;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+public class GenerateRequestTest {
+
+ @Rule
+ public ExpectedException expectedException = ExpectedException.none();
+
+ GenerateRequest.Builder underTest = GenerateRequest.builder();
+
+ @Test
+ public void fail_if_null_organization() {
+ expectedException.expect(IllegalArgumentException.class);
+ expectedException.expectMessage("Organization must not be null or empty");
+
+ underTest.setIp("127.0.0.1").setOrganization(null).build();
+ }
+
+ @Test
+ public void fail_if_empty_organization() {
+ expectedException.expect(IllegalArgumentException.class);
+ expectedException.expectMessage("Organization must not be null or empty");
+
+ underTest.setIp("127.0.0.1").setOrganization("").build();
+ }
+
+ @Test
+ public void fail_if_null_ip() {
+ expectedException.expect(IllegalArgumentException.class);
+ expectedException.expectMessage("IP must not be null or empty");
+
+ underTest.setOrganization("SonarSource").setIp(null).build();
+ }
+
+ @Test
+ public void fail_if_empty_ip() {
+ expectedException.expect(IllegalArgumentException.class);
+ expectedException.expectMessage("IP must not be null or empty");
+
+ underTest.setOrganization("SonarSource").setIp("").build();
+ }
+}