public void CreateRefreshFileUsesAbsolutePathIfRelativePathsCannotBeFormed() { // Arrange var projectSystem = new MockProjectSystem(VersionUtility.DefaultTargetFramework, @"z:\test\site\"); var assemblyPath = @"x:\test\packages\Foo.1.0\lib\net40\Bar.net40.dll"; // Act projectSystem.CreateRefreshFile(assemblyPath); // Assert Assert.Equal(@"x:\test\packages\Foo.1.0\lib\net40\Bar.net40.dll", projectSystem.ReadAllText(@"bin\Bar.net40.dll.refresh")); }
public void CreateRefreshFileAddsRefreshFileUnderBinDirectory() { // Arrange var projectSystem = new MockProjectSystem(VersionUtility.DefaultTargetFramework, @"x:\test\site\"); var assemblyPath = @"x:\test\packages\Foo.1.0\lib\net40\Foo.dll"; // Act projectSystem.CreateRefreshFile(assemblyPath); // Assert Assert.Equal(@"..\packages\Foo.1.0\lib\net40\Foo.dll", projectSystem.ReadAllText(@"bin\Foo.dll.refresh")); }
public void RemovingPackageWithModifiedContentFileWithinBeginMarkersRemoveFile() { // Arrange var sourceRepository = new MockPackageRepository(); var projectSystem = new MockProjectSystem(); var projectManager = new ProjectManager( sourceRepository, new DefaultPackagePathResolver(projectSystem), projectSystem, new MockPackageRepository()); var packageA = PackageUtility.CreatePackage("A", "1.0", content: new[] { "a.file" }); sourceRepository.AddPackage(packageA); projectManager.AddPackageReference("A"); Assert.True(projectManager.LocalRepository.Exists(packageA)); Assert.True(projectSystem.FileExists("a.file")); projectSystem.ReadAllText("a.file"); // now modify 'a.file' to include ignore line markers projectSystem.AddFile("a.file", @"content\a.file -----------------NUGET: BEGIN LICENSE TEXT dsaflkdjsal;fkjdsal;kjf sdafkljdsal;kjfl;dkasjfl;kdas fdsalk;fj;lkdsajfl;kdsa"); // Act projectManager.RemovePackageReference("A"); // Assert Assert.False(projectManager.LocalRepository.Exists(packageA)); Assert.False(projectSystem.FileExists("a.file")); }
public void RemovingPackageWithModifiedContentFileWithinIgnoreMarkersSucceeds2() { // Arrange var sourceRepository = new MockPackageRepository(); var projectSystem = new MockProjectSystem(); var projectManager = new ProjectManager( sourceRepository, new DefaultPackagePathResolver(projectSystem), projectSystem, new MockPackageRepository()); var packageA = PackageUtility.CreatePackage("A", "1.0", content: new[] { "a.file" }); var contentFile = PackageUtility.CreateMockedPackageFile("content", "a.file", @"this is awesome. *******NUGET: BEGIN LICENSE TEXT------------------ SDAFLKDSAJFL;KJDSAL;KFJL;DSAKJFL;KDSA ******NUGET: END LICENSE TEXT-------"); var mockPackageA = Mock.Get<IPackage>(packageA); mockPackageA.Setup(p => p.GetFiles()).Returns(new[] { contentFile.Object }); sourceRepository.AddPackage(packageA); projectManager.AddPackageReference("A"); Assert.True(projectManager.LocalRepository.Exists(packageA)); Assert.True(projectSystem.FileExists("a.file")); projectSystem.ReadAllText("a.file"); // now modify 'a.file' to include ignore line markers projectSystem.AddFile("a.file", @"this is awesome."); // Act projectManager.RemovePackageReference("A"); // Assert Assert.False(projectManager.LocalRepository.Exists(packageA)); Assert.False(projectSystem.FileExists("a.file")); }
public void AddPackageAskToResolveConflictForEveryFileWithDependency() { // Arrange var sourceRepository = new MockPackageRepository(); var localRepository = new MockPackageRepository(); var projectSystem = new MockProjectSystem(); projectSystem.AddFile("one.txt", "this is one"); projectSystem.AddFile("two.txt", "this is two"); var projectManager = new ProjectManager(sourceRepository, new DefaultPackagePathResolver(projectSystem), projectSystem, localRepository); IPackage packageA = PackageUtility.CreatePackage( "A", "1.0", content: new[] { "one.txt" }, dependencies: new PackageDependency[] { new PackageDependency("B") }); sourceRepository.AddPackage(packageA); IPackage packageB = PackageUtility.CreatePackage("B", "1.0", content: new[] { "two.txt" }); sourceRepository.AddPackage(packageB); var logger = new Mock<ILogger>(); logger.Setup(l => l.ResolveFileConflict(It.IsAny<string>())).Returns(FileConflictResolution.OverwriteAll); projectManager.Logger = projectSystem.Logger = logger.Object; // Act projectManager.AddPackageReference("A"); // Assert Assert.True(localRepository.Exists("A")); Assert.Equal("content\\one.txt", projectSystem.ReadAllText("one.txt")); Assert.Equal("content\\two.txt", projectSystem.ReadAllText("two.txt")); logger.Verify(l => l.ResolveFileConflict(It.IsAny<string>()), Times.Exactly(2)); }
public void UpdatePackageOverwriteAllFilesWhenFileConflictActionSetToOverwrite() { // Arrange var localRepository = new MockPackageRepository(); var sourceRepository = new MockPackageRepository(); var constraintProvider = NullConstraintProvider.Instance; var fileSystem = new MockFileSystem(); var pathResolver = new DefaultPackagePathResolver(fileSystem); var projectSystem = new MockProjectSystem(); projectSystem.AddFile("one.txt", "this is one"); projectSystem.AddFile("two.txt", "this is two"); var packages = new List<IPackage>(); var package_A10 = PackageUtility.CreatePackage("A", "1.0", content: new[] { "1.txt" }); var package_A12 = PackageUtility.CreatePackage("A", "1.2", content: new[] { "one.txt", "two.txt" }); localRepository.Add(package_A10); sourceRepository.Add(package_A12); var sharedRepository = new Mock<ISharedPackageRepository>(MockBehavior.Strict); sharedRepository.Setup(s => s.AddPackage(package_A12)).Callback<IPackage>(p => packages.Add(p)); sharedRepository.Setup(s => s.GetPackages()).Returns(packages.AsQueryable()); var repositoryFactory = new Mock<IPackageRepositoryFactory>(); repositoryFactory.Setup(s => s.CreateRepository(It.IsAny<string>())).Returns(sourceRepository); var packageSourceProvider = new Mock<IPackageSourceProvider>(); packageSourceProvider.Setup(s => s.LoadPackageSources()).Returns(new[] { new PackageSource("foo-source") }); var console = new Mock<IConsole>(); console.Setup(c => c.ResolveFileConflict(It.IsAny<string>())).Returns(FileConflictResolution.Ignore); var updateCommand = new UpdateCommand() { RepositoryFactory = repositoryFactory.Object, SourceProvider = packageSourceProvider.Object, Console = console.Object, FileConflictAction = FileConflictAction.Overwrite }; // Act updateCommand.UpdatePackages(localRepository, fileSystem, sharedRepository.Object, sourceRepository, constraintProvider, pathResolver, projectSystem); // Assert Assert.True(localRepository.Exists("A", new SemanticVersion("1.2"))); Assert.Equal("content\\one.txt", projectSystem.ReadAllText("one.txt")); Assert.Equal("content\\two.txt", projectSystem.ReadAllText("two.txt")); }