aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-plugin-api/src/test/java/org
diff options
context:
space:
mode:
authorsimonbrandhof <simon.brandhof@gmail.com>2011-01-24 15:36:32 +0100
committersimonbrandhof <simon.brandhof@gmail.com>2011-01-24 19:25:00 +0100
commit1abf95bda06ebdbdd28f795dcf6bb997f1042e11 (patch)
tree9f5a99046e82404950371879e0b93c95bd6af80a /sonar-plugin-api/src/test/java/org
parenta4266a6a06a25d65f9961965286b1e5c1cf447ac (diff)
downloadsonarqube-1abf95bda06ebdbdd28f795dcf6bb997f1042e11.tar.gz
sonarqube-1abf95bda06ebdbdd28f795dcf6bb997f1042e11.zip
Improve org.sonar.api.resources.Scopes and Qualifiers
Diffstat (limited to 'sonar-plugin-api/src/test/java/org')
-rw-r--r--sonar-plugin-api/src/test/java/org/sonar/api/resources/QualifiersTest.java131
-rw-r--r--sonar-plugin-api/src/test/java/org/sonar/api/resources/ScopesTest.java70
2 files changed, 201 insertions, 0 deletions
diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/resources/QualifiersTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/resources/QualifiersTest.java
new file mode 100644
index 00000000000..a0a58d7f6b6
--- /dev/null
+++ b/sonar-plugin-api/src/test/java/org/sonar/api/resources/QualifiersTest.java
@@ -0,0 +1,131 @@
+/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2009 SonarSource SA
+ * 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.api.resources;
+
+import org.junit.Test;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
+public class QualifiersTest {
+
+ @Test
+ public void testNullValues() {
+ assertThat(Qualifiers.isView(null, true), is(false));
+ assertThat(Qualifiers.isView(null, false), is(false));
+ assertThat(Qualifiers.isProject(null, true), is(false));
+ assertThat(Qualifiers.isProject(null, false), is(false));
+ }
+
+ @Test
+ public void testRootView() {
+ View root = View.createRootView();
+ assertThat(Qualifiers.isView(root, true), is(true));
+ assertThat(Qualifiers.isView(root, false), is(true));
+ assertThat(Qualifiers.isProject(root, true), is(false));
+ assertThat(Qualifiers.isProject(root, false), is(false));
+ }
+
+ @Test
+ public void testSubView() {
+ View subview = View.createSubView();
+ assertThat(Qualifiers.isView(subview, true), is(true));
+ assertThat(Qualifiers.isView(subview, false), is(false));
+ assertThat(Qualifiers.isProject(subview, true), is(false));
+ assertThat(Qualifiers.isProject(subview, false), is(false));
+ }
+
+ @Test
+ public void testProject() {
+ Resource root = new Project("foo");
+ assertThat(Qualifiers.isView(root, true), is(false));
+ assertThat(Qualifiers.isView(root, false), is(false));
+ assertThat(Qualifiers.isProject(root, true), is(true));
+ assertThat(Qualifiers.isProject(root, false), is(true));
+ }
+
+ @Test
+ public void testModule() {
+ Resource sub = new Project("sub").setParent(new Project("root"));
+ assertThat(Qualifiers.isView(sub, true), is(false));
+ assertThat(Qualifiers.isView(sub, false), is(false));
+ assertThat(Qualifiers.isProject(sub, true), is(true));
+ assertThat(Qualifiers.isProject(sub, false), is(false));
+ }
+
+ private static class View extends Resource {
+
+ private String qualifier;
+
+ private View(String qualifier) {
+ this.qualifier = qualifier;
+ }
+
+ static View createRootView() {
+ return new View(Qualifiers.VIEW);
+ }
+
+ static View createSubView() {
+ return new View(Qualifiers.SUBVIEW);
+ }
+
+ @Override
+ public String getName() {
+ return null;
+ }
+
+ @Override
+ public String getLongName() {
+ return null;
+ }
+
+ @Override
+ public String getDescription() {
+ return null;
+ }
+
+ @Override
+ public Language getLanguage() {
+ return null;
+ }
+
+ @Override
+ public String getScope() {
+ return Scopes.PROJECT;
+ }
+
+ @Override
+ public String getQualifier() {
+ return qualifier;
+ }
+
+ @Override
+ public Resource getParent() {
+ return null;
+ }
+
+ @Override
+ public boolean matchFilePattern(String antPattern) {
+ return false;
+ }
+ }
+}
+
+
diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/resources/ScopesTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/resources/ScopesTest.java
new file mode 100644
index 00000000000..66f5b7eec3a
--- /dev/null
+++ b/sonar-plugin-api/src/test/java/org/sonar/api/resources/ScopesTest.java
@@ -0,0 +1,70 @@
+/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2009 SonarSource SA
+ * 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.api.resources;
+
+import org.junit.Test;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
+public class ScopesTest {
+
+ @Test
+ public void testProject() {
+ Project resource = new Project("key");
+ assertThat(Scopes.isProject(resource), is(true));
+ assertThat(Scopes.isDirectory(resource), is(false));
+ assertThat(Scopes.isFile(resource), is(false));
+ assertThat(Scopes.isBlockUnit(resource), is(false));
+ assertThat(Scopes.isType(resource), is(false));
+ }
+
+ @Test
+ public void testLibrary() {
+ Resource resource = new Library("key", "1.0");
+ assertThat(Scopes.isProject(resource), is(true));
+ assertThat(Scopes.isDirectory(resource), is(false));
+ assertThat(Scopes.isFile(resource), is(false));
+ assertThat(Scopes.isBlockUnit(resource), is(false));
+ assertThat(Scopes.isType(resource), is(false));
+ }
+
+ @Test
+ public void testDirectory() {
+ Resource resource = new Directory("org/foo");
+ assertThat(Scopes.isProject(resource), is(false));
+ assertThat(Scopes.isDirectory(resource), is(true));
+ assertThat(Scopes.isFile(resource), is(false));
+ assertThat(Scopes.isBlockUnit(resource), is(false));
+ assertThat(Scopes.isType(resource), is(false));
+ }
+
+ @Test
+ public void testFile() {
+ Resource resource = new File("org/foo/Bar.java");
+ assertThat(Scopes.isProject(resource), is(false));
+ assertThat(Scopes.isDirectory(resource), is(false));
+ assertThat(Scopes.isFile(resource), is(true));
+ assertThat(Scopes.isBlockUnit(resource), is(false));
+ assertThat(Scopes.isType(resource), is(false));
+ }
+
+
+}