public void TryResolveConfigurationOutputPath_NoIntermediateOutputPath_ReturnsFalse() { // Arrange var projectInstance = new ProjectInstance(ProjectRootElement.Create()); // Act var result = MSBuildProjectManager.TryResolveConfigurationOutputPath(projectInstance, out var path); // Assert Assert.False(result); Assert.Null(path); }
public void TryResolveConfigurationOutputPath_RootedIntermediateOutputPath_ReturnsTrue() { // Arrange var projectRootElement = ProjectRootElement.Create(); var intermediateOutputPath = string.Format("C:{0}project{0}obj", Path.DirectorySeparatorChar); projectRootElement.AddProperty(MSBuildProjectManager.IntermediateOutputPathPropertyName, intermediateOutputPath); var projectInstance = new ProjectInstance(projectRootElement); var expectedPath = Path.Combine(intermediateOutputPath, MSBuildProjectManager.RazorConfigurationFileName); // Act var result = MSBuildProjectManager.TryResolveConfigurationOutputPath(projectInstance, out var path); // Assert Assert.True(result); Assert.Equal(expectedPath, path); }
public void TryResolveConfigurationOutputPath_MSBuildIntermediateOutputPath_Normalizes() { // Arrange var projectRootElement = ProjectRootElement.Create(); // Note the ending \ here that gets normalized away. var intermediateOutputPath = "C:/project\\obj"; projectRootElement.AddProperty(MSBuildProjectManager.IntermediateOutputPathPropertyName, intermediateOutputPath); var projectInstance = new ProjectInstance(projectRootElement); var expectedPath = string.Format("C:{0}project{0}obj{0}{1}", Path.DirectorySeparatorChar, MSBuildProjectManager.RazorConfigurationFileName); // Act var result = MSBuildProjectManager.TryResolveConfigurationOutputPath(projectInstance, out var path); // Assert Assert.True(result); Assert.Equal(expectedPath, path); }
public void TryResolveConfigurationOutputPath_RelativeIntermediateOutputPath_ReturnsTrue() { // Arrange var projectRootElement = ProjectRootElement.Create(); var intermediateOutputPath = "obj"; projectRootElement.AddProperty(MSBuildProjectManager.IntermediateOutputPathPropertyName, intermediateOutputPath); // Project directory is automatically set to the current test project (it's a reserved MSBuild property). var projectInstance = new ProjectInstance(projectRootElement); var expectedPath = Path.Combine(intermediateOutputPath, MSBuildProjectManager.RazorConfigurationFileName); // Act var result = MSBuildProjectManager.TryResolveConfigurationOutputPath(projectInstance, out var path); // Assert Assert.True(result); Assert.NotEmpty(path); }