public void CallAddPackageWillAddNuspecWhichHasReferencesData() { // Arrange var fileSystem = new MockFileSystem("x:\\root"); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); // Act repository.AddPackage(PackageUtility.CreatePackage("A", "1.0", assemblyReferences: new[] { "lib\\net40\\A.dll", "lib\\B.dll" })); // Assert Assert.True(fileSystem.FileExists("A.1.0\\A.1.0.nuspec")); Stream manifestContentStream = fileSystem.OpenFile("A.1.0\\A.1.0.nuspec"); Manifest manifest = Manifest.ReadFrom(manifestContentStream, validateSchema: true); Assert.Equal(2, manifest.Metadata.ReferenceSets.Count); var set1 = manifest.Metadata.ReferenceSets[0]; Assert.Equal(".NETFramework4.0", set1.TargetFramework); Assert.Equal(1, set1.References.Count); Assert.Equal("A.dll", set1.References[0].File); var set2 = manifest.Metadata.ReferenceSets[1]; Assert.Null(set2.TargetFramework); Assert.Equal(1, set2.References.Count); Assert.Equal("B.dll", set2.References[0].File); }
public void CallAddPackageWillAddNupkgFileButNoNuspecFile(string id, string version, string nuspecPath, string nupkgPath) { // Arrange var fileSystem = new MockFileSystem("x:\\root"); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); // Act repository.AddPackage(PackageUtility.CreatePackage(id, version)); // Assert Assert.False(fileSystem.FileExists(nuspecPath)); Assert.True(fileSystem.FileExists(nupkgPath)); }
public void CallAddPackageWillNotCreatePackageConfigEntryToPackageConfig() { // Arrange var fileSystem = new Mock<MockFileSystem>() { CallBase = true }; fileSystem.Setup(m => m.Root).Returns(@"c:\foo\"); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem.Object), fileSystem.Object, configFileSystem); // Act repository.AddPackage(PackageUtility.CreatePackage("A", "2.0")); // Assert Assert.False(configFileSystem.FileExists("packages.config")); }
public void AddedNuspecDoesNotAddReferencesSectionIfNotPresent() { // Arrange var fileSystem = new MockFileSystem("x:\\root"); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); // Act var package = PackageUtility.CreatePackage("A", "1.0", content: new[] { "A.txt", "scripts\\b.txt" }); repository.AddPackage(package); // Assert Assert.True(fileSystem.FileExists("A.1.0\\A.1.0.nuspec")); Stream manifestContentStream = fileSystem.OpenFile("A.1.0\\A.1.0.nuspec"); Manifest manifest = Manifest.ReadFrom(manifestContentStream, validateSchema: true); Assert.Equal(0, manifest.Metadata.ReferenceSets.Count); }
public void CallAddPackageWillNotAddEntryToPackageConfigWhenPackageConfigAlreadyExists() { // Arrange var fileSystem = new Mock<MockFileSystem>() { CallBase = true }; fileSystem.Setup(m => m.Root).Returns(@"c:\foo\"); var configFileSystem = new MockFileSystem(); configFileSystem.AddFile("packages.config", @"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""2.0"" /> </packages>"); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem.Object), fileSystem.Object, configFileSystem); // Act repository.AddPackage(PackageUtility.CreatePackage("B", "1.0")); // Assert Assert.True(configFileSystem.FileExists("packages.config")); Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""2.0"" /> </packages>", configFileSystem.ReadAllText("packages.config")); }
public void CallAddPackageWillAddNuspecWithReferencesPreserved() { // Arrange var fileSystem = new MockFileSystem("x:\\root"); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); // Act var package = PackageUtility.CreatePackage("A", "1.0", content: new[] { "A.txt", "scripts\\b.txt" }); var mockedPackage = Mock.Get(package); mockedPackage.Setup(m => m.PackageAssemblyReferences).Returns( new PackageReferenceSet[] { new PackageReferenceSet(new FrameworkName(".NETFramework, Version=4.0"), new [] { "A.dll" }), new PackageReferenceSet(null, new [] { "B.dll" }), }); // Act repository.AddPackage(package); // Assert Assert.False(fileSystem.FileExists("A.1.0\\A.1.0.nuspec")); Assert.True(fileSystem.FileExists("A.1.0\\A.1.0.nupkg")); }
public void CallAddPackageWillAddNuspecWhichHasReferencesData() { // Arrange var fileSystem = new MockFileSystem("x:\root"); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); // Act repository.AddPackage(PackageUtility.CreatePackage("A", "1.0", assemblyReferences: new [] { "net40\\A.dll", "sl45\\B.dll", "A.dll", "win8\\C.dll" })); // Assert Assert.True(fileSystem.FileExists("A.1.0\\A.1.0.nuspec")); Stream manifestContentStream = fileSystem.OpenFile("A.1.0\\A.1.0.nuspec"); Manifest manifest = Manifest.ReadFrom(manifestContentStream); Assert.Equal(3, manifest.Metadata.References.Count); Assert.Equal("A.dll", manifest.Metadata.References[0].File); Assert.Equal("B.dll", manifest.Metadata.References[1].File); Assert.Equal("C.dll", manifest.Metadata.References[2].File); }
public void CallAddPackageWillAddNuspecWithReferencesPreserved() { // Arrange var fileSystem = new MockFileSystem("x:\\root"); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); // Act var package = PackageUtility.CreatePackage("A", "1.0", content: new[] { "A.txt", "scripts\\b.txt" }); var mockedPackage = Mock.Get(package); mockedPackage.Setup(m => m.PackageAssemblyReferences).Returns( new PackageReferenceSet[] { new PackageReferenceSet(new FrameworkName(".NETFramework, Version=4.0"), new [] { "A.dll" }), new PackageReferenceSet(null, new [] { "B.dll" }), }); repository.AddPackage(package); // Assert Assert.True(fileSystem.FileExists("A.1.0\\A.1.0.nuspec")); Stream manifestContentStream = fileSystem.OpenFile("A.1.0\\A.1.0.nuspec"); Manifest manifest = Manifest.ReadFrom(manifestContentStream, validateSchema: true); Assert.Equal(2, manifest.Metadata.ReferenceSets.Count); var set1 = manifest.Metadata.ReferenceSets[0]; Assert.Equal(".NETFramework4.0", set1.TargetFramework); Assert.Equal(1, set1.References.Count); Assert.Equal("A.dll", set1.References[0].File); var set2 = manifest.Metadata.ReferenceSets[1]; Assert.Null(set2.TargetFramework); Assert.Equal(1, set2.References.Count); Assert.Equal("B.dll", set2.References[0].File); }
public void AddPackageDoesNotAddEntryToSolutionConfigFileForProjectLevelPackage() { // Arrange var fileSystem = new MockFileSystem(); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); var solutionPackage = PackageUtility.CreatePackage("SolutionLevel", content: new[] { "file.txt" }); // Act repository.AddPackage(solutionPackage); // Assert Assert.False(configFileSystem.FileExists("packages.config")); }
public void AddPackageDoesNotAddReferencesToMetadataPackagesToSolutionConfigFile() { // Arrange var fileSystem = new MockFileSystem(); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); var solutionPackage = PackageUtility.CreatePackage("MetadataPackage", dependencies: new [] { new PackageDependency("A") }, tools: new[] { "Install.ps1" }); // Act repository.AddPackage(solutionPackage); // Assert Assert.False(configFileSystem.FileExists("packages.config")); }
public void AddPackageAddSolutionLevelPackageDependingOnProjectLevelPackage() { // Arrange var fileSystem = new MockFileSystem(); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); var solutionPackage = PackageUtility.CreatePackage("SolutionLevel2", tools: new[] { "Install.ps1" }, dependencies: new[] { new PackageDependency("ProjectLevel1") }); // Act repository.AddPackage(solutionPackage); // Assert var packageReferences = repository.PackageReferenceFile.GetPackageReferences().ToArray(); Assert.True(packageReferences.IsEmpty()); }
public void AddPackageAddSolutionLevelPackageDependingOnAnotherSolutionLevelPackage() { // Arrange var fileSystem = new MockFileSystem(); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); var solutionPackage1 = PackageUtility.CreatePackage("SolutionLevel1", tools: new[] { "Install.ps1" }); var solutionPackage2 = PackageUtility.CreatePackage("SolutionLevel2", tools: new[] { "Install.ps1" }, dependencies: new[] { new PackageDependency("SolutionLevel1")}); // Act repository.AddPackage(solutionPackage1); repository.AddPackage(solutionPackage2); // Assert var packageReferences = repository.PackageReferenceFile.GetPackageReferences() .Select(p => p.Id).OrderBy(id => id).ToArray(); Assert.Equal(new [] { "SolutionLevel1", "SolutionLevel2" }, packageReferences); }
public void AddPackageAddReferencesToSolutionLevelPackagesToSolutionConfigFile() { // Arrange var fileSystem = new MockFileSystem(); var configFileSystem = new MockFileSystem(); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, configFileSystem); var solutionPackage = PackageUtility.CreatePackage("SolutionLevel", tools: new[] { "Install.ps1" }); // Act repository.AddPackage(solutionPackage); // Assert Assert.True(configFileSystem.FileExists("packages.config")); }