aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-ws-client/src
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-05-26 14:55:05 +0200
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-05-26 14:55:13 +0200
commita40b6270cfb0bb5cf390f94b66212a8f7ca0ff1c (patch)
treecd3d29ea8a7714d436efd2673016f091b8d2724c /sonar-ws-client/src
parent5997da24804c4a095bd7cbe6c50ad50ae2121e94 (diff)
downloadsonarqube-a40b6270cfb0bb5cf390f94b66212a8f7ca0ff1c.tar.gz
sonarqube-a40b6270cfb0bb5cf390f94b66212a8f7ca0ff1c.zip
Improve WS using "_ref"
Diffstat (limited to 'sonar-ws-client/src')
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/Block.java2
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/Duplications.java5
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/internal/DefaultDuplicationClient.java26
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/internal/DefaultDuplications.java3
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/test/TestableTestCases.java5
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/test/internal/DefaultTestClient.java57
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/test/internal/DefaultTestableTestCases.java10
-rw-r--r--sonar-ws-client/src/test/java/org/sonar/wsclient/duplication/internal/DefaultDuplicationClientTest.java9
-rw-r--r--sonar-ws-client/src/test/java/org/sonar/wsclient/test/internal/DefaultTestClientTest.java4
9 files changed, 57 insertions, 64 deletions
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/Block.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/Block.java
index ef2e7250329..e72e5292cea 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/Block.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/Block.java
@@ -28,7 +28,7 @@ import javax.annotation.CheckForNull;
public interface Block {
@CheckForNull
- String fileRef();
+ File file();
@CheckForNull
Integer from();
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/Duplications.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/Duplications.java
index c7e927873af..25536cae072 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/Duplications.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/Duplications.java
@@ -20,8 +20,6 @@
package org.sonar.wsclient.duplication;
-import javax.annotation.CheckForNull;
-
import java.util.List;
/**
@@ -33,7 +31,4 @@ public interface Duplications {
List<File> files();
- @CheckForNull
- File fileByRef(String ref);
-
}
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/internal/DefaultDuplicationClient.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/internal/DefaultDuplicationClient.java
index b9dfe736c4e..814aab56dff 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/internal/DefaultDuplicationClient.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/internal/DefaultDuplicationClient.java
@@ -45,12 +45,12 @@ public class DefaultDuplicationClient implements DuplicationClient {
DefaultDuplications duplications = new DefaultDuplications();
Map jRoot = (Map) JSONValue.parse(jsonResult);
- parseDuplications(duplications, jRoot);
parseFiles(duplications, jRoot);
+ parseDuplications(duplications, jRoot);
return duplications;
}
- private void parseDuplications(DefaultDuplications duplications, Map jRoot) {
+ private void parseDuplications(final DefaultDuplications duplications, Map jRoot) {
List<Map> jsonDuplications = (List<Map>) jRoot.get("duplications");
if (jsonDuplications != null) {
for (Map jsonDuplication : jsonDuplications) {
@@ -59,20 +59,20 @@ public class DefaultDuplicationClient implements DuplicationClient {
List<Map> blocks = (List<Map>) jsonDuplication.get("blocks");
if (blocks != null) {
for (final Map block : blocks) {
-
blockList.add((new Block() {
- @Override
- public String fileRef() {
- return JsonUtils.getString(block, "_ref");
+ @Override
+ public File file() {
+ String ref = JsonUtils.getString(block, "_ref");
+ return ref != null ? duplications.fileByRef(ref) : null;
}
- @Override
- public Integer from() {
+ @Override
+ public Integer from() {
return JsonUtils.getInteger(block, "from");
}
- @Override
- public Integer size() {
+ @Override
+ public Integer size() {
return JsonUtils.getInteger(block, "size");
}
}));
@@ -101,17 +101,17 @@ public class DefaultDuplicationClient implements DuplicationClient {
duplications.addFile(ref, new File() {
@Override
- public String key () {
+ public String key() {
return JsonUtils.getString(file, "key");
}
@Override
- public String name () {
+ public String name() {
return JsonUtils.getString(file, "name");
}
@Override
- public String projectName () {
+ public String projectName() {
return JsonUtils.getString(file, "projectName");
}
});
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/internal/DefaultDuplications.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/internal/DefaultDuplications.java
index fefc8596825..4d7d7f1dabb 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/internal/DefaultDuplications.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/duplication/internal/DefaultDuplications.java
@@ -44,8 +44,7 @@ public class DefaultDuplications implements Duplications {
return new ArrayList<File>(files.values());
}
- @Override
- public File fileByRef(String ref) {
+ File fileByRef(String ref) {
return files.get(ref);
}
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/test/TestableTestCases.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/test/TestableTestCases.java
index 0ca5f9f5715..8e8e8070bf4 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/test/TestableTestCases.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/test/TestableTestCases.java
@@ -33,10 +33,11 @@ public interface TestableTestCases {
List<TestCase> tests();
- File fileByTest(String testName);
-
interface TestCase {
@CheckForNull
+ File file();
+
+ @CheckForNull
String name();
@CheckForNull
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/test/internal/DefaultTestClient.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/test/internal/DefaultTestClient.java
index 737b8f3fe42..17834c44af7 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/test/internal/DefaultTestClient.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/test/internal/DefaultTestClient.java
@@ -115,13 +115,40 @@ public class DefaultTestClient implements TestClient {
String jsonResult = requestFactory.get("/api/tests/testable", params);
Map jRoot = (Map) JSONValue.parse(jsonResult);
- DefaultTestableTestCases coveringTestCases = new DefaultTestableTestCases();
+ final DefaultTestableTestCases testableTestCases = new DefaultTestableTestCases();
+
+ Map<String, Map> jsonFiles = (Map) jRoot.get("files");
+ if (jsonFiles != null) {
+ for (Map.Entry<String, Map> entry : jsonFiles.entrySet()) {
+ String ref = entry.getKey();
+ final Map file = entry.getValue();
+ if (ref != null && file != null) {
+ testableTestCases.addFile(ref, new TestableTestCases.File() {
+ @Override
+ public String key() {
+ return JsonUtils.getString(file, "key");
+ }
+
+ @Override
+ public String longName() {
+ return JsonUtils.getString(file, "longName");
+ }
+
+ });
+ }
+ }
+ }
List<Map> tests = (List) jRoot.get("tests");
if (tests != null) {
for (final Map json : tests) {
- String fileRef = JsonUtils.getString(json, "_ref");
- coveringTestCases.addTest(fileRef, new TestableTestCases.TestCase() {
+ testableTestCases.addTest(new TestableTestCases.TestCase() {
+ @Override
+ public TestableTestCases.File file() {
+ String fileRef = JsonUtils.getString(json, "_ref");
+ return fileRef != null ? testableTestCases.fileByRef(fileRef) : null;
+ }
+
@Override
public String name() {
return JsonUtils.getString(json, "name");
@@ -140,28 +167,6 @@ public class DefaultTestClient implements TestClient {
});
}
}
-
- Map<String, Map> jsonFiles = (Map) jRoot.get("files");
- if (jsonFiles != null) {
- for (Map.Entry<String, Map> entry : jsonFiles.entrySet()) {
- String ref = entry.getKey();
- final Map file = entry.getValue();
- if (ref != null && file != null) {
- coveringTestCases.addFile(ref, new TestableTestCases.File() {
- @Override
- public String key() {
- return JsonUtils.getString(file, "key");
- }
-
- @Override
- public String longName() {
- return JsonUtils.getString(file, "longName");
- }
-
- });
- }
- }
- }
- return coveringTestCases;
+ return testableTestCases;
}
}
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/test/internal/DefaultTestableTestCases.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/test/internal/DefaultTestableTestCases.java
index b4beacac2cd..af7f7161917 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/test/internal/DefaultTestableTestCases.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/test/internal/DefaultTestableTestCases.java
@@ -31,7 +31,6 @@ public class DefaultTestableTestCases implements TestableTestCases {
private final List<TestCase> tests = new ArrayList<TestCase>();
private final Map<String, File> filesByRef = new HashMap<String, File>();
- private final Map<String, String> refsByTest = new HashMap<String, String>();
@Override
public List<TestCase> tests() {
@@ -43,15 +42,12 @@ public class DefaultTestableTestCases implements TestableTestCases {
return new ArrayList<File>(filesByRef.values());
}
- @Override
- public File fileByTest(String testName) {
- String ref = refsByTest.get(testName);
- return ref != null ? filesByRef.get(ref) : null;
+ public File fileByRef(String ref) {
+ return filesByRef.get(ref);
}
- public DefaultTestableTestCases addTest(String ref, TestCase testCase) {
+ public DefaultTestableTestCases addTest(TestCase testCase) {
tests.add(testCase);
- refsByTest.put(testCase.name(), ref);
return this;
}
diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/duplication/internal/DefaultDuplicationClientTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/duplication/internal/DefaultDuplicationClientTest.java
index 69128926ed1..d8ed99aa211 100644
--- a/sonar-ws-client/src/test/java/org/sonar/wsclient/duplication/internal/DefaultDuplicationClientTest.java
+++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/duplication/internal/DefaultDuplicationClientTest.java
@@ -55,17 +55,16 @@ public class DefaultDuplicationClientTest {
assertThat(duplication.blocks()).hasSize(2);
Block block = duplication.blocks().get(0);
- assertThat(block.fileRef()).isEqualTo("1");
assertThat(block.from()).isEqualTo(94);
assertThat(block.size()).isEqualTo(101);
- List<File> files = result.files();
- assertThat(files).hasSize(2);
-
- File file = result.fileByRef("1");
+ File file = block.file();
assertThat(file.key()).isEqualTo("org.codehaus.sonar:sonar-plugin-api:src/main/java/org/sonar/api/utils/command/CommandExecutor.java");
assertThat(file.name()).isEqualTo("CommandExecutor");
assertThat(file.projectName()).isEqualTo("SonarQube");
+
+ List<File> files = result.files();
+ assertThat(files).hasSize(2);
}
}
diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/test/internal/DefaultTestClientTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/test/internal/DefaultTestClientTest.java
index ace79a5cca7..150ec009129 100644
--- a/sonar-ws-client/src/test/java/org/sonar/wsclient/test/internal/DefaultTestClientTest.java
+++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/test/internal/DefaultTestClientTest.java
@@ -74,11 +74,9 @@ public class DefaultTestClientTest {
assertThat(testCase.status()).isEqualTo("OK");
assertThat(testCase.durationInMs()).isEqualTo(10L);
- TestableTestCases.File file = coveringTestCases.fileByTest("find_by_params");
+ TestableTestCases.File file = testCase.file();
assertThat(file.key()).isEqualTo("org.codehaus.sonar:sonar-server:src/test/java/org/sonar/server/rule/RubyRuleServiceTest.java");
assertThat(file.longName()).isEqualTo("src/test/java/org/sonar/server/rule/RubyRuleServiceTest.java");
-
- assertThat(coveringTestCases.fileByTest("unknown")).isNull();
}
@Test