summaryrefslogtreecommitdiffstats
path: root/sonar-batch/src/test
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2015-11-27 10:31:57 +0100
committerJulien HENRY <julien.henry@sonarsource.com>2015-11-30 15:02:00 +0100
commitf627842b8d37623bbf2f4bb79c28905630a0b25a (patch)
tree08a6bb5dff01c3abab1ca77b2840f36f5b63f255 /sonar-batch/src/test
parent8039a98b1ac0fa8144fb0da77248a2e40280d48b (diff)
downloadsonarqube-f627842b8d37623bbf2f4bb79c28905630a0b25a.tar.gz
sonarqube-f627842b8d37623bbf2f4bb79c28905630a0b25a.zip
Improve UT coverage
Diffstat (limited to 'sonar-batch/src/test')
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/issue/DeprecatedIssueAdapterForFilterTest.java157
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/issue/TrackedIssueAdapterTest.java84
2 files changed, 241 insertions, 0 deletions
diff --git a/sonar-batch/src/test/java/org/sonar/batch/issue/DeprecatedIssueAdapterForFilterTest.java b/sonar-batch/src/test/java/org/sonar/batch/issue/DeprecatedIssueAdapterForFilterTest.java
new file mode 100644
index 00000000000..169f504d1b2
--- /dev/null
+++ b/sonar-batch/src/test/java/org/sonar/batch/issue/DeprecatedIssueAdapterForFilterTest.java
@@ -0,0 +1,157 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube 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.
+ *
+ * SonarQube 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.sonar.batch.issue;
+
+import java.util.Date;
+import org.junit.Test;
+import org.sonar.api.issue.Issue;
+import org.sonar.api.resources.Project;
+import org.sonar.api.rule.RuleKey;
+import org.sonar.batch.protocol.Constants.Severity;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.fail;
+
+public class DeprecatedIssueAdapterForFilterTest {
+
+ private static final String PROJECT_KEY = "foo";
+ private static final Date ANALYSIS_DATE = new Date();
+ private static final String COMPONENT_KEY = "foo:src/Foo.java";
+
+ @Test
+ public void improve_coverage() {
+ DeprecatedIssueAdapterForFilter issue = new DeprecatedIssueAdapterForFilter(new Project(PROJECT_KEY).setAnalysisDate(ANALYSIS_DATE),
+ org.sonar.batch.protocol.output.BatchReport.Issue.newBuilder()
+ .setRuleRepository("repo")
+ .setRuleKey("key")
+ .setSeverity(Severity.BLOCKER)
+ .setMsg("msg")
+ .build(),
+ COMPONENT_KEY);
+ DeprecatedIssueAdapterForFilter issue2 = new DeprecatedIssueAdapterForFilter(new Project(PROJECT_KEY).setAnalysisDate(ANALYSIS_DATE),
+ org.sonar.batch.protocol.output.BatchReport.Issue.newBuilder()
+ .setRuleRepository("repo")
+ .setRuleKey("key")
+ .setSeverity(Severity.BLOCKER)
+ .setMsg("msg")
+ .setLine(1)
+ .setEffortToFix(2.0)
+ .build(),
+ COMPONENT_KEY);
+
+ try {
+ issue.key();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+
+ assertThat(issue.componentKey()).isEqualTo(COMPONENT_KEY);
+ assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("repo", "key"));
+
+ try {
+ issue.language();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+
+ assertThat(issue.severity()).isEqualTo("BLOCKER");
+ assertThat(issue.message()).isEqualTo("msg");
+ assertThat(issue.line()).isNull();
+ assertThat(issue2.line()).isEqualTo(1);
+ assertThat(issue.effortToFix()).isNull();
+ assertThat(issue2.effortToFix()).isEqualTo(2.0);
+ assertThat(issue.status()).isEqualTo(Issue.STATUS_OPEN);
+ assertThat(issue.resolution()).isNull();
+
+ try {
+ issue.reporter();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+
+ assertThat(issue.assignee()).isNull();
+ assertThat(issue.creationDate()).isEqualTo(ANALYSIS_DATE);
+ assertThat(issue.updateDate()).isNull();
+ assertThat(issue.closeDate()).isNull();
+ assertThat(issue.attribute(PROJECT_KEY)).isNull();
+
+ try {
+ issue.authorLogin();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+
+ try {
+ issue.actionPlanKey();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+
+ try {
+ issue.comments();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+
+ try {
+ issue.isNew();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+
+ try {
+ issue.debt();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+
+ assertThat(issue.projectKey()).isEqualTo(PROJECT_KEY);
+
+ try {
+ issue.projectUuid();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+
+ try {
+ issue.componentUuid();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+
+ try {
+ issue.tags();
+ fail("Should be unsupported");
+ } catch (Exception e) {
+ assertThat(e).isExactlyInstanceOf(UnsupportedOperationException.class).hasMessage("Not available for issues filters");
+ }
+ }
+
+}
diff --git a/sonar-batch/src/test/java/org/sonar/batch/issue/TrackedIssueAdapterTest.java b/sonar-batch/src/test/java/org/sonar/batch/issue/TrackedIssueAdapterTest.java
new file mode 100644
index 00000000000..eead6eb0944
--- /dev/null
+++ b/sonar-batch/src/test/java/org/sonar/batch/issue/TrackedIssueAdapterTest.java
@@ -0,0 +1,84 @@
+/*
+ * SonarQube, open source software quality management tool.
+ * Copyright (C) 2008-2014 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * SonarQube 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.
+ *
+ * SonarQube 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.sonar.batch.issue;
+
+import java.util.Date;
+import org.junit.Test;
+import org.sonar.api.issue.Issue;
+import org.sonar.api.rule.RuleKey;
+import org.sonar.batch.issue.tracking.TrackedIssue;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class TrackedIssueAdapterTest {
+
+ @Test
+ public void improve_coverage() {
+ Date creationDate = new Date();
+ TrackedIssue trackedIssue = new TrackedIssue()
+ .setKey("XYZ123")
+ .setComponentKey("foo")
+ .setRuleKey(RuleKey.of("repo", "rule"))
+ .setSeverity("MAJOR")
+ .setMessage("msg")
+ .setStartLine(1)
+ .setEffortToFix(2.0)
+ .setStatus("RESOLVED")
+ .setResolution("FIXED")
+ .setReporter("toto")
+ .setAssignee("tata")
+ .setNew(true)
+ .setCreationDate(creationDate);
+ Issue issue = new TrackedIssueAdapter(trackedIssue);
+ assertThat(issue.key()).isEqualTo("XYZ123");
+ assertThat(issue.componentKey()).isEqualTo("foo");
+ assertThat(issue.ruleKey()).isEqualTo(RuleKey.of("repo", "rule"));
+ assertThat(issue.severity()).isEqualTo("MAJOR");
+ assertThat(issue.message()).isEqualTo("msg");
+ assertThat(issue.line()).isEqualTo(1);
+ assertThat(issue.effortToFix()).isEqualTo(2.0);
+ assertThat(issue.status()).isEqualTo("RESOLVED");
+ assertThat(issue.resolution()).isEqualTo("FIXED");
+ assertThat(issue.reporter()).isEqualTo("toto");
+ assertThat(issue.assignee()).isEqualTo("tata");
+ assertThat(issue.isNew()).isTrue();
+ assertThat(issue.attribute("foo")).isNull();
+ assertThat(issue.creationDate()).isEqualTo(creationDate);
+ assertThat(issue.language()).isNull();
+ assertThat(issue.updateDate()).isNull();
+ assertThat(issue.closeDate()).isNull();
+ assertThat(issue.authorLogin()).isNull();
+ assertThat(issue.actionPlanKey()).isNull();
+ assertThat(issue.comments()).isEmpty();
+ assertThat(issue.debt()).isNull();
+ assertThat(issue.projectKey()).isNull();
+ assertThat(issue.projectUuid()).isNull();
+ assertThat(issue.componentUuid()).isNull();
+ assertThat(issue.tags()).isEmpty();
+
+ assertThat(issue).isNotEqualTo(null);
+ assertThat(issue).isNotEqualTo("Foo");
+ assertThat(issue).isEqualTo(new TrackedIssueAdapter(trackedIssue));
+ assertThat(issue.hashCode()).isEqualTo(trackedIssue.key().hashCode());
+ assertThat(issue).isNotEqualTo(new TrackedIssueAdapter(new TrackedIssue()
+ .setKey("another")));
+ }
+
+}