Ejemplo n.º 1
0
 private DefaultAspNetCoreWebAppProjectFileProvider CreateProjectFileProvider(
     DotnetCoreScriptGeneratorOptions options)
 {
     return(new DefaultAspNetCoreWebAppProjectFileProvider(
                Options.Create(options),
                NullLogger <DefaultAspNetCoreWebAppProjectFileProvider> .Instance));
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }