aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2013-02-05 19:07:42 +0100
committerSimon Brandhof <simon.brandhof@gmail.com>2013-02-05 19:10:17 +0100
commitb58601cce773c23cdef9feb56e0cc486f000001a (patch)
tree1acd3da6c4cdaabb0e7375f5613beb3da418e079 /sonar-core
parentf0e662a2b73e0e9ae70b005e7093c5c27fab24d8 (diff)
downloadsonarqube-b58601cce773c23cdef9feb56e0cc486f000001a.tar.gz
sonarqube-b58601cce773c23cdef9feb56e0cc486f000001a.zip
SONAR-2501 a test plan can have multiple test cases with the same name (see TestNG)
Diffstat (limited to 'sonar-core')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/test/DefaultTestCase.java20
-rw-r--r--sonar-core/src/main/java/org/sonar/core/test/DefaultTestPlan.java20
-rw-r--r--sonar-core/src/main/java/org/sonar/core/test/DefaultTestable.java6
-rw-r--r--sonar-core/src/test/java/org/sonar/core/test/DefaultTestCaseTest.java12
-rw-r--r--sonar-core/src/test/java/org/sonar/core/test/DefaultTestPlanTest.java34
-rw-r--r--sonar-core/src/test/java/org/sonar/core/test/DefaultTestableTest.java6
6 files changed, 41 insertions, 57 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/test/DefaultTestCase.java b/sonar-core/src/main/java/org/sonar/core/test/DefaultTestCase.java
index d7b200e4673..7b535ad7c23 100644
--- a/sonar-core/src/main/java/org/sonar/core/test/DefaultTestCase.java
+++ b/sonar-core/src/main/java/org/sonar/core/test/DefaultTestCase.java
@@ -50,24 +50,12 @@ public class DefaultTestCase extends BeanVertex implements MutableTestCase {
return this;
}
- public String status() {
- return (String) getProperty("status");
+ public Status status() {
+ return Status.of((String)getProperty("status"));
}
- public MutableTestCase setStatus(@Nullable String s) {
- setProperty("status", s);
- return this;
- }
-
- /**
- * The key is not blank and unique among the test plan.
- */
- public String key() {
- return (String) getProperty("key");
- }
-
- public MutableTestCase setKey(String s) {
- setProperty("key", s);
+ public MutableTestCase setStatus(@Nullable Status s) {
+ setProperty("status", s == null ? null : s.toString());
return this;
}
diff --git a/sonar-core/src/main/java/org/sonar/core/test/DefaultTestPlan.java b/sonar-core/src/main/java/org/sonar/core/test/DefaultTestPlan.java
index c1947f9b168..a9c4b69cc02 100644
--- a/sonar-core/src/main/java/org/sonar/core/test/DefaultTestPlan.java
+++ b/sonar-core/src/main/java/org/sonar/core/test/DefaultTestPlan.java
@@ -19,10 +19,10 @@
*/
package org.sonar.core.test;
+import com.google.common.collect.Lists;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.blueprints.Vertex;
import org.sonar.api.component.Component;
-import org.sonar.api.test.exception.TestCaseAlreadyExistsException;
import org.sonar.api.test.MutableTestCase;
import org.sonar.api.test.MutableTestPlan;
import org.sonar.core.component.ComponentVertex;
@@ -31,6 +31,8 @@ import org.sonar.core.graph.GraphUtil;
import javax.annotation.CheckForNull;
+import java.util.List;
+
public class DefaultTestPlan extends BeanVertex implements MutableTestPlan {
public Component component() {
Vertex component = GraphUtil.singleAdjacent(element(), Direction.IN, "testplan");
@@ -47,21 +49,19 @@ public class DefaultTestPlan extends BeanVertex implements MutableTestPlan {
}
@CheckForNull
- public MutableTestCase testCaseByKey(String key) {
+ public Iterable<MutableTestCase> testCasesByName(String name) {
+ List<MutableTestCase> result = Lists.newArrayList();
for (MutableTestCase testCase : testCases()) {
- if (key.equals(testCase.key())) {
- return testCase;
+ if (name.equals(testCase.name())) {
+ result.add(testCase);
}
}
- return null;
+ return result;
}
- public MutableTestCase addTestCase(String key) {
- if (testCaseByKey(key)!=null) {
- throw new TestCaseAlreadyExistsException(component().key(), key);
- }
+ public MutableTestCase addTestCase(String name) {
DefaultTestCase testCase = beanGraph().createAdjacentVertex(this, DefaultTestCase.class, "testcase");
- testCase.setKey(key);
+ testCase.setName(name);
return testCase;
}
diff --git a/sonar-core/src/main/java/org/sonar/core/test/DefaultTestable.java b/sonar-core/src/main/java/org/sonar/core/test/DefaultTestable.java
index 25a3510f162..a3b4f2598c4 100644
--- a/sonar-core/src/main/java/org/sonar/core/test/DefaultTestable.java
+++ b/sonar-core/src/main/java/org/sonar/core/test/DefaultTestable.java
@@ -53,10 +53,10 @@ public class DefaultTestable extends BeanVertex implements MutableTestable {
return cases.build();
}
- public TestCase testCaseByKey(final String key) {
+ public TestCase testCaseByName(final String name) {
return Iterables.find(testCases(), new Predicate<TestCase>() {
public boolean apply(TestCase input) {
- return input.key().equals(key);
+ return input.name().equals(name);
}
}, null);
}
@@ -94,7 +94,7 @@ public class DefaultTestable extends BeanVertex implements MutableTestable {
public Cover coverOfTestCase(final TestCase testCase) {
return Iterables.find(getEdges(DefaultCover.class, Direction.IN, "covers"), new Predicate<Cover>() {
public boolean apply(Cover input) {
- return input.testCase().key().equals(testCase.key());
+ return input.testCase().name().equals(testCase.name());
}
}, null);
}
diff --git a/sonar-core/src/test/java/org/sonar/core/test/DefaultTestCaseTest.java b/sonar-core/src/test/java/org/sonar/core/test/DefaultTestCaseTest.java
index 212216dcf5d..8dc9289bc9d 100644
--- a/sonar-core/src/test/java/org/sonar/core/test/DefaultTestCaseTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/test/DefaultTestCaseTest.java
@@ -83,7 +83,7 @@ public class DefaultTestCaseTest {
}
@Test
- public void should_return_cover_of_testable(){
+ public void should_return_cover_of_testable() {
BeanGraph beanGraph = BeanGraph.createInMemory();
ScanGraph graph = ScanGraph.create();
@@ -106,19 +106,17 @@ public class DefaultTestCaseTest {
BeanGraph beanGraph = BeanGraph.createInMemory();
DefaultTestCase testCase = beanGraph.createVertex(DefaultTestCase.class);
- testCase.setKey("T1")
- .setName("Test one")
+ testCase.setName("T1")
.setDurationInMs(1234L)
.setMessage("Error msg")
.setStackTrace("xxx")
- .setStatus(TestCase.STATUS_FAIL);
+ .setStatus(TestCase.Status.ERROR);
- assertThat(testCase.key()).isEqualTo("T1");
- assertThat(testCase.name()).isEqualTo("Test one");
+ assertThat(testCase.name()).isEqualTo("T1");
assertThat(testCase.message()).isEqualTo("Error msg");
assertThat(testCase.stackTrace()).isEqualTo("xxx");
assertThat(testCase.durationInMs()).isEqualTo(1234L);
- assertThat(testCase.status()).isEqualTo(TestCase.STATUS_FAIL);
+ assertThat(testCase.status()).isEqualTo(TestCase.Status.ERROR);
}
@Test
diff --git a/sonar-core/src/test/java/org/sonar/core/test/DefaultTestPlanTest.java b/sonar-core/src/test/java/org/sonar/core/test/DefaultTestPlanTest.java
index 32a3c32157e..816bdb13d4c 100644
--- a/sonar-core/src/test/java/org/sonar/core/test/DefaultTestPlanTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/test/DefaultTestPlanTest.java
@@ -23,10 +23,8 @@ import com.google.common.collect.Iterables;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
-import org.sonar.api.test.exception.TestCaseAlreadyExistsException;
import org.sonar.api.test.MutableTestCase;
import org.sonar.api.test.TestPlan;
-import org.sonar.core.component.ComponentVertex;
import org.sonar.core.graph.BeanGraph;
import static org.fest.assertions.Assertions.assertThat;
@@ -53,46 +51,46 @@ public class DefaultTestPlanTest {
assertThat(plan.testCases()).hasSize(2);
MutableTestCase firstTestCase = Iterables.get(plan.testCases(), 0);
- assertThat(firstTestCase.key()).isEqualTo("T1");
+ assertThat(firstTestCase.name()).isEqualTo("T1");
assertThat(firstTestCase.testPlan()).isSameAs(plan);
MutableTestCase secondTestCase = Iterables.get(plan.testCases(), 1);
- assertThat(secondTestCase.key()).isEqualTo("T2");
+ assertThat(secondTestCase.name()).isEqualTo("T2");
assertThat(secondTestCase.testPlan()).isSameAs(plan);
}
@Test
- public void should_find_test_case_by_key() {
+ public void should_find_test_case_by_name() {
BeanGraph beanGraph = BeanGraph.createInMemory();
DefaultTestPlan plan = beanGraph.createVertex(DefaultTestPlan.class);
plan.addTestCase("T1");
plan.addTestCase("T2");
- assertThat(plan.testCaseByKey("T1").key()).isEqualTo("T1");
- assertThat(plan.testCaseByKey("T3")).isNull();
+ assertThat(plan.testCasesByName("T1")).hasSize(1);
+ assertThat(Iterables.get(plan.testCasesByName("T1"), 0).name()).isEqualTo("T1");
+ assertThat(plan.testCasesByName("T3")).isEmpty();
}
@Test
- public void should_set_type() {
+ public void should_find_multiple_test_cases_by_name() {
BeanGraph beanGraph = BeanGraph.createInMemory();
DefaultTestPlan plan = beanGraph.createVertex(DefaultTestPlan.class);
- assertThat(plan.type()).isNull();
+ plan.addTestCase("T1");
+ plan.addTestCase("T1");
- plan.setType(TestPlan.TYPE_UNIT);
- assertThat(plan.type()).isEqualTo(TestPlan.TYPE_UNIT);
+ assertThat(plan.testCasesByName("T1")).hasSize(2);
}
@Test
- public void keys_of_test_cases_should_be_unique() {
- thrown.expect(TestCaseAlreadyExistsException.class);
-
+ public void should_set_type() {
BeanGraph beanGraph = BeanGraph.createInMemory();
- ComponentVertex component = beanGraph.createVertex(ComponentVertex.class);
- DefaultTestPlan plan = beanGraph.createAdjacentVertex(component, DefaultTestPlan.class, "testplan");
- plan.addTestCase("T1");
- plan.addTestCase("T1");
+ DefaultTestPlan plan = beanGraph.createVertex(DefaultTestPlan.class);
+ assertThat(plan.type()).isNull();
+
+ plan.setType(TestPlan.TYPE_UNIT);
+ assertThat(plan.type()).isEqualTo(TestPlan.TYPE_UNIT);
}
}
diff --git a/sonar-core/src/test/java/org/sonar/core/test/DefaultTestableTest.java b/sonar-core/src/test/java/org/sonar/core/test/DefaultTestableTest.java
index 3a921a2508d..cbf107b1617 100644
--- a/sonar-core/src/test/java/org/sonar/core/test/DefaultTestableTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/test/DefaultTestableTest.java
@@ -86,9 +86,9 @@ public class DefaultTestableTest {
MutableTestCase testCase2 = Iterables.get(plan.testCases(), 1);
testCase2.setCover(testable, Arrays.asList(12, 48, 49));
- assertThat(testable.testCaseByKey("T1")).isEqualTo(testCase1);
- assertThat(testable.testCaseByKey("T2")).isEqualTo(testCase2);
- assertThat(testable.testCaseByKey("Unknown")).isNull();
+ assertThat(testable.testCaseByName("T1")).isEqualTo(testCase1);
+ assertThat(testable.testCaseByName("T2")).isEqualTo(testCase2);
+ assertThat(testable.testCaseByName("Unknown")).isNull();
}
@Test