public void GetRestoreSettingsTask_VerifyEmptyPerFrameworkSettings()
        {
            using (var testDir = TestDirectory.CreateInTemp())
            {
                // Arrange
                var buildEngine = new TestBuildEngine();
                var testLogger  = buildEngine.TestLogger;

                var task = new GetRestoreSettingsTask()
                {
                    BuildEngine                 = buildEngine,
                    ProjectUniqueName           = Path.Combine(testDir, "a.csproj"),
                    RestoreSources              = new[] { Path.Combine(testDir, "base") },
                    RestoreFallbackFolders      = new[] { Path.Combine(testDir, "base") },
                    RestoreSettingsPerFramework = new ITaskItem[0]
                };

                // Act
                var result = task.Execute();

                // Assert
                result.Should().BeTrue();
                task.OutputSources.ShouldBeEquivalentTo(new[] { Path.Combine(testDir, "base") });
                task.OutputFallbackFolders.ShouldBeEquivalentTo(new[] { Path.Combine(testDir, "base") });
            }
        }
        public void GetRestoreSettingsTask_VerifyDisabledSourcesAreExcluded()
        {
            using (var testDir = TestDirectory.CreateInTemp())
            {
                // Arrange
                var buildEngine = new TestBuildEngine();
                var testLogger  = buildEngine.TestLogger;


                var configFile = Path.Combine(testDir, Settings.DefaultSettingsFileName);

                var projectDirectory = Path.GetDirectoryName(configFile);
                Directory.CreateDirectory(projectDirectory);

                File.WriteAllText(configFile, DisableSourceConfig);

                var task = new GetRestoreSettingsTask()
                {
                    BuildEngine                 = buildEngine,
                    ProjectUniqueName           = Path.Combine(testDir, "a.csproj"),
                    RestoreFallbackFolders      = new[] { Path.Combine(testDir, "base") },
                    RestoreSettingsPerFramework = new ITaskItem[0]
                };

                // Act
                var result = task.Execute();

                // Assert
                result.Should().BeTrue();
                task.OutputSources.ShouldBeEquivalentTo(new[] { @"https://nuget.org/v2/api" });
            }
        }
        public void GetRestoreSettingsTask_VerifyRestoreAdditionalProjectFallbackFoldersWithExcludeAreNotAdded()
        {
            using (var testDir = TestDirectory.CreateInTemp())
            {
                // Arrange
                var buildEngine = new TestBuildEngine();
                var testLogger  = buildEngine.TestLogger;

                var settingsPerFramework = new List <ITaskItem>();
                var settings1            = new Mock <ITaskItem>();
                settings1.SetupGet(e => e.ItemSpec).Returns("a");
                settings1.Setup(e => e.GetMetadata("RestoreAdditionalProjectFallbackFolders")).Returns(Path.Combine(testDir, "sourceC"));
                settingsPerFramework.Add(settings1.Object);

                var settings2 = new Mock <ITaskItem>();
                settings2.SetupGet(e => e.ItemSpec).Returns("b");
                settings2.Setup(e => e.GetMetadata("RestoreAdditionalProjectFallbackFoldersExcludes")).Returns(Path.Combine(testDir, "sourceC"));
                settingsPerFramework.Add(settings2.Object);

                var task = new GetRestoreSettingsTask()
                {
                    BuildEngine                 = buildEngine,
                    ProjectUniqueName           = Path.Combine(testDir, "a.csproj"),
                    RestoreFallbackFolders      = new[] { Path.Combine(testDir, "sourceA"), Path.Combine(testDir, "sourceB") },
                    RestoreSettingsPerFramework = settingsPerFramework.ToArray()
                };

                // Act
                var result = task.Execute();

                // Assert
                result.Should().BeTrue();
                task.OutputFallbackFolders.ShouldBeEquivalentTo(new[] { Path.Combine(testDir, "sourceA"), Path.Combine(testDir, "sourceB") });
            }
        }
Exemple #4
0
        public void GetRestoreSettingsTask_VerifyAggregationAcrossFrameworks()
        {
            using (var testDir = TestDirectory.CreateInTemp())
            {
                // Arrange
                var buildEngine = new TestBuildEngine();
                var testLogger  = buildEngine.TestLogger;

                var settingsPerFramework = new List <ITaskItem>();
                var settings1            = new Mock <ITaskItem>();
                settings1.SetupGet(e => e.ItemSpec).Returns("a");
                settings1.Setup(e => e.GetMetadata("RestoreAdditionalProjectSources")).Returns($"{Path.Combine(testDir, "a")};{Path.Combine(testDir, "b")}");
                settings1.Setup(e => e.GetMetadata("RestoreAdditionalProjectFallbackFolders")).Returns($"{Path.Combine(testDir, "m")};{Path.Combine(testDir, "n")}");
                settingsPerFramework.Add(settings1.Object);

                var settings2 = new Mock <ITaskItem>();
                settings2.SetupGet(e => e.ItemSpec).Returns("b");
                settings2.Setup(e => e.GetMetadata("RestoreAdditionalProjectSources")).Returns(Path.Combine(testDir, "c"));
                settings2.Setup(e => e.GetMetadata("RestoreAdditionalProjectFallbackFolders")).Returns(Path.Combine(testDir, "s"));
                settingsPerFramework.Add(settings2.Object);

                var settings3 = new Mock <ITaskItem>();
                settings3.SetupGet(e => e.ItemSpec).Returns("c");
                settings3.Setup(e => e.GetMetadata("RestoreAdditionalProjectSources")).Returns(Path.Combine(testDir, "d"));
                settingsPerFramework.Add(settings3.Object);

                var settings4 = new Mock <ITaskItem>();
                settings4.SetupGet(e => e.ItemSpec).Returns("d");
                settings4.Setup(e => e.GetMetadata("RestoreAdditionalProjectFallbackFolders")).Returns(Path.Combine(testDir, "t"));
                settingsPerFramework.Add(settings4.Object);

                var settings5 = new Mock <ITaskItem>();
                settings5.SetupGet(e => e.ItemSpec).Returns("e");
                settingsPerFramework.Add(settings5.Object);

                var task = new GetRestoreSettingsTask()
                {
                    BuildEngine                 = buildEngine,
                    ProjectUniqueName           = Path.Combine(testDir, "a.csproj"),
                    RestoreSources              = new[] { Path.Combine(testDir, "base") },
                    RestoreFallbackFolders      = new[] { Path.Combine(testDir, "base") },
                    RestoreSettingsPerFramework = settingsPerFramework.ToArray()
                };

                // Act
                var result = task.Execute();

                // Assert
                result.Should().BeTrue();
                task.OutputSources.Should().BeEquivalentTo(new[] { Path.Combine(testDir, "base"), Path.Combine(testDir, "a"), Path.Combine(testDir, "b"), Path.Combine(testDir, "c"), Path.Combine(testDir, "d") });
                task.OutputFallbackFolders.Should().BeEquivalentTo(new[] { Path.Combine(testDir, "base"), Path.Combine(testDir, "m"), Path.Combine(testDir, "n"), Path.Combine(testDir, "s"), Path.Combine(testDir, "t") });
            }
        }
Exemple #5
0
        public void GetRestoreSettingsTask_WithRestoreRootDirectory_ProjectLevelConfigIsIgnored()
        {
            using (var testDir = TestDirectory.CreateInTemp())
            {
                var projectDir = Path.Combine(testDir, "project");
                Directory.CreateDirectory(projectDir);
                // Arrange
                var buildEngine = new TestBuildEngine();
                var testLogger  = buildEngine.TestLogger;

                var settingsPerFramework = new List <ITaskItem>();
                var settings1            = new Mock <ITaskItem>();
                settings1.SetupGet(e => e.ItemSpec).Returns("a");
                settingsPerFramework.Add(settings1.Object);

                var task = new GetRestoreSettingsTask()
                {
                    BuildEngine                 = buildEngine,
                    ProjectUniqueName           = Path.Combine(projectDir, "a.csproj"),
                    RestoreRootConfigDirectory  = testDir,
                    RestoreSettingsPerFramework = settingsPerFramework.ToArray()
                };

                var rootConfigFile         = Path.Combine(testDir, Settings.DefaultSettingsFileName);
                var projectLevelConfigFile = Path.Combine(projectDir, Settings.DefaultSettingsFileName);
                File.WriteAllText(rootConfigFile, RootConfig);
                File.WriteAllText(projectLevelConfigFile, ProjectLevelConfig);
                // Act
                var result = task.Execute();

                // Assert
                result.Should().BeTrue();
                task.OutputSources.Should().BeEquivalentTo(new[] { "https://api.nuget.org/v3/index.json" });
                task.OutputFallbackFolders.Should().BeEmpty();
                task.OutputConfigFilePaths.Should().Contain(rootConfigFile);
                task.OutputConfigFilePaths.Should().NotContain(projectLevelConfigFile);
            }
        }