summaryrefslogtreecommitdiffstats
path: root/plugins/sonar-cpd-plugin
diff options
context:
space:
mode:
authorEvgeny Mandrikov <mandrikov@gmail.com>2011-09-08 12:04:47 +0400
committerEvgeny Mandrikov <mandrikov@gmail.com>2011-09-08 13:14:08 +0400
commit00398c07d64cea029383a594d1b42ed737831515 (patch)
tree2661ad4273e5acea765379fcbbd501b28fc4336b /plugins/sonar-cpd-plugin
parent00beca012f2f4c810a3a40f95c0c6a94c6cdfdac (diff)
downloadsonarqube-00398c07d64cea029383a594d1b42ed737831515.tar.gz
sonarqube-00398c07d64cea029383a594d1b42ed737831515.zip
SONAR-1091 Enable Sonar CPD engine by default
Diffstat (limited to 'plugins/sonar-cpd-plugin')
-rw-r--r--plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdSensor.java4
-rw-r--r--plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/CpdSensorTest.java42
-rw-r--r--plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/PmdEngineTest.java72
3 files changed, 85 insertions, 33 deletions
diff --git a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdSensor.java b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdSensor.java
index a4aacb6c53c..3aecb265e2f 100644
--- a/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdSensor.java
+++ b/plugins/sonar-cpd-plugin/src/main/java/org/sonar/plugins/cpd/CpdSensor.java
@@ -64,9 +64,9 @@ public class CpdSensor implements Sensor {
}
}
- private boolean isSonarEngineEnabled(Project project) {
+ boolean isSonarEngineEnabled(Project project) {
Configuration conf = project.getConfiguration();
- return StringUtils.equalsIgnoreCase(conf.getString("sonar.cpd.engine", "pmd"), "sonar");
+ return StringUtils.equalsIgnoreCase(conf.getString("sonar.cpd.engine", "sonar"), "sonar");
}
boolean isSkipped(Project project) {
diff --git a/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/CpdSensorTest.java b/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/CpdSensorTest.java
index 1ff0bee17ce..f0dbcd4bbbd 100644
--- a/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/CpdSensorTest.java
+++ b/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/CpdSensorTest.java
@@ -19,13 +19,13 @@
*/
package org.sonar.plugins.cpd;
-import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.junit.Test;
-import org.sonar.api.CoreProperties;
import org.sonar.api.batch.CpdMapping;
import org.sonar.api.resources.Project;
@@ -38,7 +38,7 @@ public class CpdSensorTest {
Project project = createJavaProject().setConfiguration(conf);
- CpdSensor sensor = new CpdSensor(new SonarEngine(null, null), new PmdEngine(new CpdMapping[0]));
+ CpdSensor sensor = new CpdSensor(new SonarEngine(), new PmdEngine(new CpdMapping[0]));
assertTrue(sensor.isSkipped(project));
}
@@ -46,7 +46,7 @@ public class CpdSensorTest {
public void doNotSkipByDefault() {
Project project = createJavaProject().setConfiguration(new PropertiesConfiguration());
- CpdSensor sensor = new CpdSensor(new SonarEngine(null, null), new PmdEngine(new CpdMapping[0]));
+ CpdSensor sensor = new CpdSensor(new SonarEngine(), new PmdEngine(new CpdMapping[0]));
assertFalse(sensor.isSkipped(project));
}
@@ -59,41 +59,20 @@ public class CpdSensorTest {
Project phpProject = createPhpProject().setConfiguration(conf);
Project javaProject = createJavaProject().setConfiguration(conf);
- CpdSensor sensor = new CpdSensor(new SonarEngine(null, null), new PmdEngine(new CpdMapping[0]));
+ CpdSensor sensor = new CpdSensor(new SonarEngine(), new PmdEngine(new CpdMapping[0]));
assertTrue(sensor.isSkipped(phpProject));
assertFalse(sensor.isSkipped(javaProject));
}
@Test
- public void defaultMinimumTokens() {
- Project project = createJavaProject().setConfiguration(new PropertiesConfiguration());
-
- PmdEngine sensor = new PmdEngine(new CpdMapping[0]);
- assertEquals(CoreProperties.CPD_MINIMUM_TOKENS_DEFAULT_VALUE, sensor.getMinimumTokens(project));
- }
-
- @Test
- public void generalMinimumTokens() {
+ public void engine() {
PropertiesConfiguration conf = new PropertiesConfiguration();
- conf.setProperty("sonar.cpd.minimumTokens", "33");
Project project = createJavaProject().setConfiguration(conf);
+ CpdSensor sensor = new CpdSensor(new SonarEngine(), new PmdEngine(new CpdMapping[0]));
- PmdEngine sensor = new PmdEngine(new CpdMapping[0]);
- assertEquals(33, sensor.getMinimumTokens(project));
- }
-
- @Test
- public void minimumTokensByLanguage() {
- PropertiesConfiguration conf = new PropertiesConfiguration();
- conf.setProperty("sonar.cpd.minimumTokens", "100");
- conf.setProperty("sonar.cpd.php.minimumTokens", "33");
-
- Project phpProject = createPhpProject().setConfiguration(conf);
- Project javaProject = createJavaProject().setConfiguration(conf);
-
- PmdEngine sensor = new PmdEngine(new CpdMapping[0]);
- assertEquals(100, sensor.getMinimumTokens(javaProject));
- assertEquals(33, sensor.getMinimumTokens(phpProject));
+ assertThat(sensor.isSonarEngineEnabled(project), is(true));
+ conf.setProperty("sonar.cpd.engine", "pmd");
+ assertThat(sensor.isSonarEngineEnabled(project), is(false));
}
private Project createJavaProject() {
@@ -103,4 +82,5 @@ public class CpdSensorTest {
private Project createPhpProject() {
return new Project("php_project").setLanguageKey("php");
}
+
}
diff --git a/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/PmdEngineTest.java b/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/PmdEngineTest.java
new file mode 100644
index 00000000000..11201041de9
--- /dev/null
+++ b/plugins/sonar-cpd-plugin/src/test/java/org/sonar/plugins/cpd/PmdEngineTest.java
@@ -0,0 +1,72 @@
+/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2008-2011 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * Sonar 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.
+ *
+ * Sonar 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 Sonar; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
+ */
+package org.sonar.plugins.cpd;
+
+import static junit.framework.Assert.assertEquals;
+
+import org.apache.commons.configuration.PropertiesConfiguration;
+import org.junit.Test;
+import org.sonar.api.CoreProperties;
+import org.sonar.api.batch.CpdMapping;
+import org.sonar.api.resources.Project;
+
+public class PmdEngineTest {
+
+ @Test
+ public void defaultMinimumTokens() {
+ Project project = createJavaProject().setConfiguration(new PropertiesConfiguration());
+
+ PmdEngine sensor = new PmdEngine(new CpdMapping[0]);
+ assertEquals(CoreProperties.CPD_MINIMUM_TOKENS_DEFAULT_VALUE, sensor.getMinimumTokens(project));
+ }
+
+ @Test
+ public void generalMinimumTokens() {
+ PropertiesConfiguration conf = new PropertiesConfiguration();
+ conf.setProperty("sonar.cpd.minimumTokens", "33");
+ Project project = createJavaProject().setConfiguration(conf);
+
+ PmdEngine sensor = new PmdEngine(new CpdMapping[0]);
+ assertEquals(33, sensor.getMinimumTokens(project));
+ }
+
+ @Test
+ public void minimumTokensByLanguage() {
+ PropertiesConfiguration conf = new PropertiesConfiguration();
+ conf.setProperty("sonar.cpd.minimumTokens", "100");
+ conf.setProperty("sonar.cpd.php.minimumTokens", "33");
+
+ Project phpProject = createPhpProject().setConfiguration(conf);
+ Project javaProject = createJavaProject().setConfiguration(conf);
+
+ PmdEngine sensor = new PmdEngine(new CpdMapping[0]);
+ assertEquals(100, sensor.getMinimumTokens(javaProject));
+ assertEquals(33, sensor.getMinimumTokens(phpProject));
+ }
+
+ private Project createJavaProject() {
+ return new Project("java_project").setLanguageKey("java");
+ }
+
+ private Project createPhpProject() {
+ return new Project("php_project").setLanguageKey("php");
+ }
+
+}