public void Fallback_FilesLocatedCorrectly() { // Arrange var testSubject = new BuildVNextCoverageSearchFallback(new TestLogger()); var dir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString(), "TestResults"); var subDir = Path.Combine(dir, "subDir", "subDir2"); Directory.CreateDirectory(subDir); TestUtils.CreateTextFile(dir, "foo.coverageXXX", "1"); TestUtils.CreateTextFile(dir, "abc.trx", "2"); var expected1 = TestUtils.CreateTextFile(dir, "foo.coverage", "3"); var expected2 = TestUtils.CreateTextFile(dir, "DUPLICATE.coverage", "4"); TestUtils.CreateTextFile(dir, "BAR.coverage.XXX", ""); TestUtils.CreateTextFile(dir, "Duplicate.coverage", "4"); // appears in both places - only one should be returned var expected3 = TestUtils.CreateTextFile(subDir, "BAR.COVERAGE", "5"); // should be found using (var envVars = new EnvironmentVariableScope()) { envVars.SetVariable(BuildVNextCoverageSearchFallback.AGENT_TEMP_DIRECTORY, dir); // Act var actual = testSubject.FindCoverageFiles(); // Assert actual.Should().BeEquivalentTo(expected1, expected2, expected3); } }
public void Fallback_CalculatesAndDeDupesOnContentCorrectly() { // Arrange var testSubject = new BuildVNextCoverageSearchFallback(new TestLogger()); var dir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString(), "TestResults"); var subDir = Path.Combine(dir, "subDir", "subDir2"); Directory.CreateDirectory(subDir); var fileOne = "fileNameOne.coverage"; var fileTwo = "fileNameTwo.coverage"; var fileThree = "fileNameThree.coverage"; var fileOneDuplicate = "fileNameOneDuplicate.coverage"; var expected1 = TestUtils.CreateTextFile(dir, fileOne, fileOne); var expected2 = TestUtils.CreateTextFile(dir, fileTwo, fileTwo); var expected3 = TestUtils.CreateTextFile(dir, fileThree, fileThree); TestUtils.CreateTextFile(dir, fileOneDuplicate, fileOne); // Same content as fileOne, should not be expected TestUtils.CreateTextFile(subDir, fileOne, fileOne); // Same content and filename, but in other dir, as fileOne, should not be expected using (var envVars = new EnvironmentVariableScope()) { envVars.SetVariable(BuildVNextCoverageSearchFallback.AGENT_TEMP_DIRECTORY, dir); // Act var actual = testSubject.FindCoverageFiles(); // Assert actual.Should().BeEquivalentTo(expected1, expected2, expected3); } }
public void Fallback_AgentDirectory_CalculatedCorrectly() { // Arrange var testSubject = new BuildVNextCoverageSearchFallback(new TestLogger()); var rootDir = TestUtils.CreateTestSpecificFolder(this.TestContext); var envDir = Path.Combine(rootDir, "DirSpecifiedInEnvDir"); using (var envVars = new EnvironmentVariableScope()) { // 1) env var not specified -> null envVars.SetVariable(BuildVNextCoverageSearchFallback.AGENT_TEMP_DIRECTORY, null); testSubject.GetAgentTempDirectory().Should().BeNull(); // 2) Env var set but dir does not exist -> null envVars.SetVariable(BuildVNextCoverageSearchFallback.AGENT_TEMP_DIRECTORY, envDir); testSubject.GetAgentTempDirectory().Should().Be(null); // 3) Env var set and dir exists -> dir returned Directory.CreateDirectory(envDir); testSubject.GetAgentTempDirectory().Should().Be(envDir); } }