@Before public void init() throws Exception { fileSystem = mock(ProjectFileSystem.class); when(fileSystem.getSonarWorkingDirectory()).thenReturn(TestUtils.getResource("/Sensor")); vsProject = mock(VisualStudioProject.class); when(vsProject.getName()).thenReturn("Project #1"); when(vsProject.getGeneratedAssemblies("Debug", "Any CPU")) .thenReturn( Sets.newHashSet(TestUtils.getResource("/Sensor/FakeAssemblies/Fake1.assembly"))); VisualStudioProject project2 = mock(VisualStudioProject.class); when(project2.getName()).thenReturn("Project Test"); when(project2.isTest()).thenReturn(true); solution = mock(VisualStudioSolution.class); when(solution.getProjects()).thenReturn(Lists.newArrayList(vsProject, project2)); microsoftWindowsEnvironment = new MicrosoftWindowsEnvironment(); microsoftWindowsEnvironment.setCurrentSolution(solution); microsoftWindowsEnvironment.setWorkingDirectory("target"); rulesProfile = mock(RulesProfile.class); when(rulesProfile.getActiveRulesByRepository(anyString())) .thenReturn(Collections.singletonList(new ActiveRule())); resultParser = mock(GendarmeResultParser.class); profileExporter = mock(GendarmeProfileExporter.RegularGendarmeProfileExporter.class); conf = new BaseConfiguration(); initializeSensor(); }
@Test public void testAnalyse() { parser = mock(CoverageResultParser.class); // create the parser before the sensor CoverageReportSensor sensor = buildSensor(); microsoftWindowsEnvironment.setTestExecutionDone(); File solutionDir = TestUtils.getResource("/Results/coverage/"); microsoftWindowsEnvironment.setWorkingDirectory(""); when(solution.getSolutionDir()).thenReturn(solutionDir); when(solution.getProject("MyAssembly")).thenReturn(vsProject1); List<FileCoverage> sourceFiles = new ArrayList<FileCoverage>(); List<ProjectCoverage> projects = new ArrayList<ProjectCoverage>(); ParserResult parserResult = new ParserResult(projects, sourceFiles); when(parser.parse(eq(project), any(File.class))).thenReturn(parserResult); ProjectCoverage projectCoverage = mock(ProjectCoverage.class); when(projectCoverage.getAssemblyName()).thenReturn("MyAssembly"); projects.add(projectCoverage); SensorContext context = mock(SensorContext.class); sensor.analyse(project, context); verify(projectCoverage).getFileCoverageCollection(); }