public async Task Should_Return_Using_VsBuild_When_No_Labelled_PropertyGroup(bool returnNull) { var mockCoverageProject = new Mock <ICoverageProject>(); var coverageProjectGuid = Guid.NewGuid(); mockCoverageProject.Setup(cp => cp.Id).Returns(coverageProjectGuid); var fccLabelledPropertyGroup = @" <PropertyGroup Label='NotFineCodeCoverage'> </PropertyGroup> "; var projectFileXElement = XElement.Parse($@" <Project> {fccLabelledPropertyGroup} </Project> "); mockCoverageProject.Setup(cp => cp.ProjectFileXElement).Returns(projectFileXElement); var mockVsBuildFCCSettingsProvider = new Mock <IVsBuildFCCSettingsProvider>(); var settingsElementFromVsBuildFCCSettingsProvider = returnNull ? null : new XElement("Root"); mockVsBuildFCCSettingsProvider.Setup( vsBuildFCCSettingsProvider => vsBuildFCCSettingsProvider.GetSettingsAsync(coverageProjectGuid) ).ReturnsAsync(settingsElementFromVsBuildFCCSettingsProvider); var coverageProjectSettingsProvider = new CoverageProjectSettingsProvider(mockVsBuildFCCSettingsProvider.Object); var coverageProject = mockCoverageProject.Object; var coverageProjectSettings = await coverageProjectSettingsProvider.ProvideAsync(coverageProject); Assert.AreSame(settingsElementFromVsBuildFCCSettingsProvider, coverageProjectSettings); }
public async Task Should_Return_The_FineCodeCoverage_Labelled_PropertyGroup() { var coverageProjectSettingsProvider = new CoverageProjectSettingsProvider(null); var mockCoverageProject = new Mock <ICoverageProject>(); var fccLabelledPropertyGroup = @" <PropertyGroup Label='FineCodeCoverage'> <Setting1/> </PropertyGroup> "; var projectFileXElement = XElement.Parse($@" <Project> {fccLabelledPropertyGroup} </Project> "); mockCoverageProject.Setup(cp => cp.ProjectFileXElement).Returns(projectFileXElement); var coverageProject = mockCoverageProject.Object; var coverageProjectSettings = await coverageProjectSettingsProvider.ProvideAsync(coverageProject); XmlAssert.NoXmlDifferences(coverageProjectSettings.ToString(), fccLabelledPropertyGroup); }