private DefaultAspNetCoreWebAppProjectFileProvider CreateProjectFileProvider( DotnetCoreScriptGeneratorOptions options) { return(new DefaultAspNetCoreWebAppProjectFileProvider( Options.Create(options), NullLogger <DefaultAspNetCoreWebAppProjectFileProvider> .Instance)); }
public void GetProjectFile_DoesNotThrow_IfSourceRepo_HasMultipleWebAppProjects_AndProjectEnvVariableValue() { // Arrange var sourceRepoDir = CreateSourceRepoDir(); var srcDir = CreateDir(sourceRepoDir, "src"); var webApp1Dir = CreateDir(srcDir, "WebApp1"); File.WriteAllText(Path.Combine(webApp1Dir, "WebApp1.csproj"), webApp1Dir); var webApp2Dir = CreateDir(srcDir, "WebApp2"); var expectedFile = Path.Combine(webApp2Dir, "WebApp2.csproj"); File.WriteAllText(expectedFile, webApp1Dir); var sourceRepo = CreateSourceRepo(sourceRepoDir); var relativeProjectPath = Path.Combine("src", "WebApp2", "WebApp2.csproj"); var options = new DotnetCoreScriptGeneratorOptions(); options.Project = relativeProjectPath; var provider = CreateProjectFileProvider(options); // Act var actualFile = provider.GetProjectFile(sourceRepo); // Assert Assert.Equal(expectedFile, actualFile); }
public void GetRelativePathToProjectFile_DoesNotThrow_IfRepoHasMultipleWebApps_AndProjectEnvVariableIsSet( string projectFileExtension) { // Arrange var sourceRepoDir = CreateSourceRepoDir(); var srcDir = CreateDir(sourceRepoDir, "src"); var webApp1Dir = CreateDir(srcDir, "WebApp1"); File.WriteAllText(Path.Combine(webApp1Dir, $"WebApp1.{projectFileExtension}"), webApp1Dir); var webApp2Dir = CreateDir(srcDir, "WebApp2"); var projectFile = Path.Combine(webApp2Dir, $"WebApp2.{projectFileExtension}"); File.WriteAllText(projectFile, webApp1Dir); var sourceRepo = CreateSourceRepo(sourceRepoDir); var relativeProjectPath = Path.Combine("src", "WebApp2", $"WebApp2.{projectFileExtension}"); var options = new DotnetCoreScriptGeneratorOptions(); options.Project = relativeProjectPath; var provider = CreateProjectFileProvider(options); // Act var actualFile = provider.GetRelativePathToProjectFile(sourceRepo); // Assert Assert.Equal(relativeProjectPath, actualFile); }
public void GetProjectFile_ReturnsNull_IfPathInProjectEnvVariableValue_DoesNotExist() { // Arrange var sourceRepoDir = CreateSourceRepoDir(); var srcDir = CreateDir(sourceRepoDir, "src"); var webApp1Dir = CreateDir(srcDir, "WebApp1"); File.WriteAllText( Path.Combine(webApp1Dir, "WebApp1.csproj"), ProjectFileWithMicrosoftAspNetCoreAppPackageReference); var webApp2Dir = CreateDir(srcDir, "WebApp2"); File.WriteAllText( Path.Combine(webApp2Dir, "WebApp2.csproj"), ProjectFileWithMicrosoftAspNetCoreAppPackageReference); var sourceRepo = CreateSourceRepo(sourceRepoDir); var relativeProjectPath = Path.Combine("src", "WebApp2", "WebApp2-doesnotexist.csproj"); var options = new DotnetCoreScriptGeneratorOptions(); options.Project = relativeProjectPath; var provider = CreateProjectFileProvider(options); // Act var actualFile = provider.GetProjectFile(sourceRepo); // Assert Assert.Null(actualFile); }
private DotnetCoreLanguageDetector CreateDotnetCoreLanguageDetector( string[] supportedVersions, string projectFile, IEnvironment environment) { var optionsSetup = new DotnetCoreScriptGeneratorOptionsSetup(environment); var options = new DotnetCoreScriptGeneratorOptions(); optionsSetup.Configure(options); return(new DotnetCoreLanguageDetector( new TestVersionProvider(supportedVersions), Options.Create(options), new TestAspNetCoreWebAppProjectFileProvider(projectFile), NullLogger <DotnetCoreLanguageDetector> .Instance)); }
public void GetProjectFile_ReturnsFile_IfProjectEnvVariableIsSet_AndProjectFileIsNotAspNetCoreApp() { // Arrange var sourceRepoDir = CreateSourceRepoDir(); var srcDir = CreateDir(sourceRepoDir, "src"); var webApp1Dir = CreateDir(srcDir, "WebApp1"); var expectedFile = Path.Combine(webApp1Dir, "WebApp1.csproj"); File.WriteAllText(expectedFile, NonWebSdkProjectFile); var sourceRepo = CreateSourceRepo(sourceRepoDir); var relativeProjectPath = Path.Combine("src", "WebApp1", "WebApp1.csproj"); var options = new DotnetCoreScriptGeneratorOptions(); options.Project = relativeProjectPath; var provider = CreateProjectFileProvider(options); // Act var actualFile = provider.GetProjectFile(sourceRepo); // Assert Assert.Equal(expectedFile, actualFile); }
public void GetProjectFile_Throws_IfPathInProjectEnvVariableValue_DoesNotExist() { // Arrange var sourceRepoDir = CreateSourceRepoDir(); var srcDir = CreateDir(sourceRepoDir, "src"); var webApp1Dir = CreateDir(srcDir, "WebApp1"); File.WriteAllText(Path.Combine(webApp1Dir, "WebApp1.csproj"), WebSdkProjectFile); var webApp2Dir = CreateDir(srcDir, "WebApp2"); File.WriteAllText(Path.Combine(webApp2Dir, "WebApp2.csproj"), WebSdkProjectFile); var sourceRepo = CreateSourceRepo(sourceRepoDir); var relativeProjectPath = Path.Combine("src", "WebApp2", "WebApp2-doesnotexist.csproj"); var options = new DotnetCoreScriptGeneratorOptions(); options.Project = relativeProjectPath; var provider = CreateProjectFileProvider(options); // Act & Assert var exception = Assert.Throws <InvalidUsageException>(() => provider.GetProjectFile(sourceRepo)); Assert.Contains("Could not find the project file ", exception.Message); }