]> source.dussan.org Git - sonarqube.git/commitdiff
Improve code coverage
authorJulien HENRY <julien.henry@sonarsource.com>
Mon, 1 Sep 2014 08:01:37 +0000 (10:01 +0200)
committerJulien HENRY <julien.henry@sonarsource.com>
Mon, 1 Sep 2014 08:01:37 +0000 (10:01 +0200)
plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/lang/SyntaxHighlightingSensorTest.java [new file with mode: 0644]

diff --git a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/lang/SyntaxHighlightingSensorTest.java b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/lang/SyntaxHighlightingSensorTest.java
new file mode 100644 (file)
index 0000000..a8a3e04
--- /dev/null
@@ -0,0 +1,67 @@
+package org.sonar.xoo.lang;
+
+import org.apache.commons.io.FileUtils;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+import org.sonar.api.batch.fs.internal.DefaultFileSystem;
+import org.sonar.api.batch.fs.internal.DefaultInputFile;
+import org.sonar.api.batch.sensor.SensorContext;
+import org.sonar.api.batch.sensor.highlighting.HighlightingBuilder;
+import org.sonar.api.batch.sensor.highlighting.TypeOfText;
+import org.sonar.api.batch.sensor.internal.DefaultSensorDescriptor;
+
+import java.io.File;
+import java.io.IOException;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+public class SyntaxHighlightingSensorTest {
+
+  private SyntaxHighlightingSensor sensor;
+  private SensorContext context = mock(SensorContext.class);
+  private DefaultFileSystem fileSystem;
+
+  @Rule
+  public TemporaryFolder temp = new TemporaryFolder();
+  private File baseDir;
+
+  @Before
+  public void prepare() throws IOException {
+    baseDir = temp.newFolder();
+    sensor = new SyntaxHighlightingSensor();
+    fileSystem = new DefaultFileSystem();
+    when(context.fileSystem()).thenReturn(fileSystem);
+  }
+
+  @Test
+  public void testDescriptor() {
+    sensor.describe(new DefaultSensorDescriptor());
+  }
+
+  @Test
+  public void testNoExecutionIfNoSyntaxFile() {
+    DefaultInputFile inputFile = new DefaultInputFile("src/foo.xoo").setAbsolutePath(new File(baseDir, "src/foo.xoo").getAbsolutePath()).setLanguage("xoo");
+    fileSystem.add(inputFile);
+    sensor.execute(context);
+  }
+
+  @Test
+  public void testExecution() throws IOException {
+    File symbol = new File(baseDir, "src/foo.xoo.highlighting");
+    FileUtils.write(symbol, "1:4:k\n12:15:cppd\n\n#comment");
+    DefaultInputFile inputFile = new DefaultInputFile("src/foo.xoo").setAbsolutePath(new File(baseDir, "src/foo.xoo").getAbsolutePath()).setLanguage("xoo");
+    fileSystem.add(inputFile);
+    HighlightingBuilder builder = mock(HighlightingBuilder.class);
+    when(context.highlightingBuilder(inputFile)).thenReturn(builder);
+
+    sensor.execute(context);
+
+    verify(builder).highlight(1, 4, TypeOfText.KEYWORD);
+    verify(builder).highlight(12, 15, TypeOfText.CPP_DOC);
+    verify(builder).done();
+  }
+}