From 3631a75a1a88e18ebc6b909e3ee430b5b61831af Mon Sep 17 00:00:00 2001 From: Julien HENRY Date: Mon, 1 Sep 2014 10:01:37 +0200 Subject: [PATCH] Improve code coverage --- .../lang/SyntaxHighlightingSensorTest.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/lang/SyntaxHighlightingSensorTest.java 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 index 00000000000..a8a3e04837c --- /dev/null +++ b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/lang/SyntaxHighlightingSensorTest.java @@ -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(); + } +} -- 2.39.5