示例#1
0
        public async Task ShouldFollowResolvableImports()
        {
            var workDirectory = Path.Combine(TestContext.CurrentContext.WorkDirectory,
                                             nameof(ShouldFollowResolvableImports));

            Directory.CreateDirectory(workDirectory);

            var projectName = nameof(ShouldFollowResolvableImports) + ".csproj";
            var projectPath = Path.Combine(workDirectory, projectName);
            await File.WriteAllTextAsync(projectPath, _testWebApiProject);

            var intermediateProject  = Path.Combine(workDirectory, "Intermediate.csproj");
            var intermediateContents = _projectWithReference.Replace("{importPath}", projectPath);
            await File.WriteAllTextAsync(intermediateProject, intermediateContents);

            var rootProject = Path.Combine(workDirectory, "RootProject.csproj");
            var rootContets = _projectWithReference.Replace("{importPath}",
                                                            Path.Combine("..", nameof(ShouldFollowResolvableImports), "Intermediate.csproj"));
            await File.WriteAllTextAsync(rootProject, rootContets);

            var subject = new UpdateProjectImportsCommand();

            var package = new PackageInProject("acme", "1",
                                               new PackagePath(workDirectory, "RootProject.csproj", PackageReferenceType.ProjectFileOldStyle));

            await subject.Invoke(package, null, null, NuGetSources.GlobalFeed);

            var updatedContents = await File.ReadAllTextAsync(projectPath);

            Assert.That(updatedContents, Does.Not.Contain(_unpatchedImport));
            Assert.That(updatedContents, Does.Contain(_patchedImport));
        }
示例#2
0
        public async Task ShouldUpdateConditionOnTaskImport()
        {
            var workDirectory = Path.Combine(TestContext.CurrentContext.WorkDirectory,
                                             nameof(ShouldUpdateConditionOnTaskImport));

            Directory.CreateDirectory(workDirectory);
            var projectName = nameof(ShouldUpdateConditionOnTaskImport) + ".csproj";
            var projectPath = Path.Combine(workDirectory, projectName);
            await File.WriteAllTextAsync(projectPath, _testWebApiProject);

            var subject = new UpdateProjectImportsCommand();

            var package = new PackageInProject("acme", "1",
                                               new PackagePath(workDirectory, projectName, PackageReferenceType.ProjectFileOldStyle));

            await subject.Invoke(package, null, null, NuGetSources.GlobalFeed);

            var updatedContents = await File.ReadAllTextAsync(projectPath);

            Assert.That(updatedContents, Does.Not.Contain(_unpatchedImport));
            Assert.That(updatedContents, Does.Contain(_patchedImport));
        }