]> source.dussan.org Git - sonarqube.git/commitdiff
Improve quality
authorDuarte Meneses <duarte.meneses@sonarsource.com>
Thu, 14 Jul 2016 07:29:44 +0000 (09:29 +0200)
committerDuarte Meneses <duarte.meneses@sonarsource.com>
Thu, 14 Jul 2016 07:29:44 +0000 (09:29 +0200)
sonar-plugin-api/src/main/java/org/sonar/api/scan/issue/filter/IssueFilter.java
sonar-scanner-engine/src/main/java/org/sonar/batch/bootstrapper/IssueListener.java
sonar-scanner-engine/src/main/java/org/sonar/scanner/issue/IssueCallback.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/repository/DefaultGlobalRepositoriesLoaderTest.java
sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/QProfileTest.java [new file with mode: 0644]

index e403776784e6ef924f43351a526da2758b730ea3..3dc8e899ee70c0e942a35909ced0026be653ba0f 100644 (file)
@@ -24,6 +24,7 @@ import org.sonar.api.batch.ScannerSide;
 
 @ScannerSide
 @ExtensionPoint
+@FunctionalInterface
 /**
  * @since 5.3
  */
index bf3f399142abbadaec7b013ca83732ba2fe91d72..289ce0e980205b8d2c95672c21335f2f9357d743 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.batch.bootstrapper;
 
+@FunctionalInterface
 public interface IssueListener {
   void handle(Issue issue);
 
index 89655a83188d23e97cd36b017b59d175fd439271..4a7784436582a1f7430e35eb05f5a869f0523ee6 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.scanner.issue;
 
+@FunctionalInterface
 public interface IssueCallback {
   void execute();
 }
index bca63c154e86fa4efb6602a13dc56817f9450640..32294620a0593bd8514d48f772a33a4e4d42b03a 100644 (file)
  */
 package org.sonar.scanner.repository;
 
+import java.io.IOException;
+import java.io.Reader;
 import java.io.StringReader;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.ExpectedException;
 import org.sonar.scanner.WsTestUtil;
 import org.sonar.scanner.bootstrap.BatchWsClient;
 import org.sonar.scanner.protocol.input.GlobalRepositories;
 
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
 
 public class DefaultGlobalRepositoriesLoaderTest {
   private static final String BATCH_GLOBAL_URL = "/batch/global";
   private BatchWsClient wsClient;
   private DefaultGlobalRepositoriesLoader globalRepositoryLoader;
 
+  @Rule
+  public ExpectedException exception = ExpectedException.none();
+
   @Before
   public void setUp() {
     wsClient = mock(BatchWsClient.class);
@@ -47,4 +57,23 @@ public class DefaultGlobalRepositoriesLoaderTest {
     WsTestUtil.verifyCall(wsClient, BATCH_GLOBAL_URL);
     verifyNoMoreInteractions(wsClient);
   }
+
+  @Test
+  public void testIOError() throws IOException {
+    Reader reader = mock(Reader.class);
+    when(reader.read(any(char[].class))).thenThrow(new IOException());
+    WsTestUtil.mockReader(wsClient, reader);
+    exception.expect(IllegalStateException.class);
+    globalRepositoryLoader.load();
+  }
+
+  @Test
+  public void testCloseError() throws IOException {
+    Reader reader = mock(Reader.class);
+    when(reader.read(any(char[].class))).thenReturn(-1);
+    doThrow(new IOException()).when(reader).close();
+    WsTestUtil.mockReader(wsClient, reader);
+    exception.expect(IllegalStateException.class);
+    globalRepositoryLoader.load();
+  }
 }
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/QProfileTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/QProfileTest.java
new file mode 100644 (file)
index 0000000..d4844d6
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program 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.
+ *
+ * This program 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.scanner.rule;
+
+import org.junit.Test;
+import static org.assertj.core.api.Assertions.*;
+
+public class QProfileTest {
+  @Test
+  public void testEquals() {
+    QProfile q1 = new QProfile();
+    QProfile q2 = new QProfile();
+    QProfile q3 = new QProfile();
+
+    q1.setKey("k1");
+    q1.setName("name1");
+
+    q2.setKey("k1");
+    q2.setName("name2");
+
+    q3.setKey("k3");
+    q3.setName("name3");
+
+    assertThat(q1).isEqualTo(q2);
+    assertThat(q1).isNotEqualTo(q3);
+    assertThat(q2).isNotEqualTo(q3);
+    assertThat(q1).isNotEqualTo(null);
+    assertThat(q1).isNotEqualTo("str");
+
+    assertThat(q1.hashCode()).isEqualTo(q2.hashCode());
+    assertThat(q1.hashCode()).isNotEqualTo(q3.hashCode());
+    assertThat(q2.hashCode()).isNotEqualTo(q3.hashCode());
+  }
+}