package com.pablissimo.sonar; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import java.io.File; import java.util.HashMap; import java.util.Map; import java.util.Set; import org.junit.Before; import org.junit.Test; import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.sensor.internal.DefaultSensorDescriptor; import org.sonar.api.batch.sensor.internal.SensorContextTester; public class CombinedCoverageSensorTest { LOCSensor locSensor; TsCoverageSensor coverageSensor; SensorContextTester sensorContext; CombinedCoverageSensor sensor; @Before public void setUp() throws Exception { this.sensorContext = SensorContextTester.create(new File("")); this.locSensor = mock(LOCSensor.class); this.coverageSensor = mock(TsCoverageSensor.class); this.sensor = new CombinedCoverageSensor(this.locSensor, this.coverageSensor); } @Test public void describe_setsName() { DefaultSensorDescriptor desc = new DefaultSensorDescriptor(); this.sensor.describe(desc); assertEquals(desc.name(), "Combined LCOV and LOC sensor"); } @Test public void describe_setsLanguage() { DefaultSensorDescriptor desc = new DefaultSensorDescriptor(); this.sensor.describe(desc); assertEquals(TypeScriptLanguage.LANGUAGE_KEY, desc.languages().iterator().next()); } @Test public void execute_callsLocSensor() { this.sensor.execute(this.sensorContext); verify(this.locSensor, times(1)).execute(eq(this.sensorContext)); } @Test public void execute_callsCoverageSensorWithLocSensorOutput() { Map<InputFile, Set<Integer>> locOutput = new HashMap<InputFile, Set<Integer>>(); when(this.locSensor.execute(eq(this.sensorContext))).thenReturn(locOutput); this.sensor.execute(this.sensorContext); verify(this.coverageSensor, times(1)).execute(eq(this.sensorContext), eq(locOutput)); } }