diff options
author | Teryk Bellahsene <teryk.bellahsene@sonarsource.com> | 2016-09-06 17:00:25 +0200 |
---|---|---|
committer | Teryk Bellahsene <teryk.bellahsene@sonarsource.com> | 2016-09-07 17:06:10 +0200 |
commit | 7ef29c10d2efaaa9e092c90b1ac64e37f8dd056c (patch) | |
tree | ffbe9356501cd38b3a5c630cff41af7c298d9d6e /sonar-ws | |
parent | 037cba432e43e3c92259e51b53b9149029e40865 (diff) | |
download | sonarqube-7ef29c10d2efaaa9e092c90b1ac64e37f8dd056c.tar.gz sonarqube-7ef29c10d2efaaa9e092c90b1ac64e37f8dd056c.zip |
SONAR-7984 WS api/server_id/generate
Diffstat (limited to 'sonar-ws')
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(); + } +} |