public void AddPackages_Adds_New_Depedenency() { string initialJson = @"{ ""dependencies"": { ""Newtonsoft.Json"": ""5.0.8"", ""Microsoft.Net.Runtime.Interfaces"": """" } }"; string expectedJson = @"{ ""dependencies"": { ""Newtonsoft.Json"": ""5.0.8"", ""Microsoft.Net.Runtime.Interfaces"": """", ""Microsoft.Net.Runtime"": ""1.0.0"" } }"; _mockFileSystem.WriteAllText(_projectJsonPath, initialJson); _packageInstaller.AddPackages(new[] { new PackageMetadata() { Name = "Microsoft.Net.Runtime", Version = "1.0.0" } }); var actualJson = _mockFileSystem.ReadAllText(_projectJsonPath); Assert.Equal(expectedJson, actualJson); }
public async Task AddFileFromTemplateAsync_Writes_If_Template_Processing_Is_Successful() { var mockFilesLocator = new Mock <IFilesLocator>(); var mockTemplating = new Mock <ITemplating>(); var mockFileSystem = new MockFileSystem(); var templateName = "TemplateName"; var templatePath = "C:\template.cshtml"; var templateContent = "TemplateContent"; var outputPath = @"C:\Output.txt"; var generatedText = "GeneratedText"; mockFilesLocator.Setup(fl => fl.GetFilePath(templateName, It.IsAny <IEnumerable <string> >())) .Returns(templatePath); mockFileSystem.WriteAllText(templatePath, templateContent); mockTemplating.Setup(templating => templating.RunTemplateAsync(templateContent, null)) .Returns(Task.FromResult(new TemplateResult() { ProcessingException = null, GeneratedText = generatedText })); var codeGeneratorActionService = new CodeGeneratorActionsService( mockTemplating.Object, mockFilesLocator.Object, mockFileSystem); await codeGeneratorActionService.AddFileFromTemplateAsync(outputPath, templateName, new[] { "TemplateFolder1", "TemplateFolder2" }, null); Assert.True(mockFileSystem.FileExists(outputPath)); Assert.Equal(generatedText, mockFileSystem.ReadAllText(outputPath)); }
public void RemovingAndAddingPackageReferenceWithSameIdPreservesConstraint() { // Arrange var sharedRepository = new Mock <ISharedPackageRepository>(); var fileSystem = new MockFileSystem(); fileSystem.AddFile("packages.config", @"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""1.0"" allowedVersions=""[1.0, 5.0)"" /> </packages>"); var referenceRepository = new PackageReferenceRepository(fileSystem, sharedRepository.Object); var A10 = PackageUtility.CreatePackage("A"); var A20 = PackageUtility.CreatePackage("A", "2.0"); // Act referenceRepository.RemovePackage(A10); referenceRepository.AddPackage(A20); // Assert Assert.True(fileSystem.FileExists("packages.config")); AssertConfig(@"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""2.0"" allowedVersions=""[1.0, 5.0)"" /> </packages>", fileSystem.ReadAllText("packages.config")); }
public void RemovingAndAddingPackageReferenceWithSameIdPreservesDevelopmentFlag() { // Arrange var sharedRepository = new Mock <ISharedPackageRepository>(); var fileSystem = new MockFileSystem(); fileSystem.AddFile("packages.config", @"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""1.0"" developmentDependency=""false"" /> </packages>"); var referenceRepository = new PackageReferenceRepository(fileSystem, projectName: null, sourceRepository: sharedRepository.Object); var A10 = PackageUtility.CreatePackage("A"); var A20 = PackageUtility.CreatePackage("A", "2.0"); // Act referenceRepository.RemovePackage(A10); referenceRepository.AddPackage(A20); // Assert Assert.True(fileSystem.FileExists("packages.config")); AssertConfig(@"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""2.0"" developmentDependency=""false"" /> </packages>", fileSystem.ReadAllText("packages.config")); }
public void GetRepositoryPathsRemovesInvalidOrNonExistantPathsAndReturnsRelativePaths() { // Arrange var fileSystem = new MockFileSystem(@"x:\foo\bar\baz"); fileSystem.AddFile(@"A\packages.config", ""); fileSystem.AddFile(@"x:\foo\packages.config", ""); fileSystem.AddFile(@"..\..\packages.config", ""); fileSystem.AddFile("repositories.config", @"<?xml version=""1.0"" encoding=""utf-8""?> <repositories> <repository path=""A\packages.config"" /> <repository path=""B\packages.config"" /> <repository path=""x:\foo\packages.config"" /> <repository path=""..\..\packages.config"" /> <repository path="""" /> <repository /> </repositories>"); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, new MockFileSystem()); // Act var paths = repository.GetRepositoryPaths().ToList(); // Assert Assert.Equal(2, paths.Count); Assert.Equal(@"A\packages.config", paths[0]); Assert.Equal(@"..\..\packages.config", paths[1]); Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?> <repositories> <repository path=""A\packages.config"" /> <repository path=""x:\foo\packages.config"" /> </repositories>", fileSystem.ReadAllText("repositories.config")); }
public void CallingSetValueWillAddToSectionIfItExist() { // Arrange var mockFileSystem = new MockFileSystem(); var nugetConfigPath = "NuGet.Config"; string config = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <SectionName> <add key=""key"" value=""value"" /> </SectionName> </configuration>"; mockFileSystem.AddFile(nugetConfigPath, config); Settings settings = new Settings(mockFileSystem); // Act settings.SetValue("SectionName", "keyTwo", "valueTwo"); // Assert Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <SectionName> <add key=""key"" value=""value"" /> <add key=""keyTwo"" value=""valueTwo"" /> </SectionName> </configuration>", mockFileSystem.ReadAllText(nugetConfigPath)); }
public void CallingSetValuesWillOverrideValueIfKeyExists() { // Arrange var mockFileSystem = new MockFileSystem(); var nugetConfigPath = "NuGet.Config"; string config = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <SectionName> <add key=""key"" value=""value"" /> </SectionName> </configuration>"; mockFileSystem.AddFile(nugetConfigPath, config); var values = new List <KeyValuePair <string, string> >() { new KeyValuePair <string, string>("key", "NewValue") }; Settings settings = new Settings(mockFileSystem); // Act settings.SetValues("SectionName", values); // Assert Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <SectionName> <add key=""key"" value=""NewValue"" /> </SectionName> </configuration>", mockFileSystem.ReadAllText(nugetConfigPath)); }
public void CallingSetNestedValuesAddsItemsInNestedElement() { // Arrange var mockFileSystem = new MockFileSystem(); var nugetConfigPath = "NuGet.Config"; string config = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> </configuration>"; mockFileSystem.AddFile(nugetConfigPath, config); var values = new [] { new KeyValuePair <string, string>("key1", "Value1"), new KeyValuePair <string, string>("key2", "Value2") }; Settings settings = new Settings(mockFileSystem); // Act settings.SetNestedValues("SectionName", "MyKey", values); // Assert Assert.Equal( @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <SectionName> <MyKey> <add key=""key1"" value=""Value1"" /> <add key=""key2"" value=""Value2"" /> </MyKey> </SectionName> </configuration>", mockFileSystem.ReadAllText(nugetConfigPath)); }
public void UnregisterRepositoryUseTheStoreFileSystem() { // Arrange var fileSystem = new MockFileSystem("x:\\"); var storeFileSystem = new MockFileSystem("y:\\"); storeFileSystem.AddFile("repositories.config", @"<?xml version=""1.0"" encoding=""utf-8""?> <repositories> <repository path=""project1\path"" /> <repository path=""..\one\two"" /> </repositories>"); var configFileSystem = new MockFileSystem("z:\\"); var resolver = new DefaultPackagePathResolver(fileSystem); var repository = new SharedPackageRepository(resolver, fileSystem, storeFileSystem, configFileSystem); // Act repository.UnregisterRepository("x:\\project1\\path"); // Assert Assert.True(storeFileSystem.FileExists("repositories.config")); string content = storeFileSystem.ReadAllText("repositories.config"); Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?> <repositories> <repository path=""..\one\two"" /> </repositories>", content); }
public void CallingDeleteSectionWithValidSectionDeletesTheSectionAndReturnsTrue() { // Arrange var mockFileSystem = new MockFileSystem(); var nugetConfigPath = "NuGet.Config"; string config = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <SectionName> <add key=""DeleteMe"" value=""value"" /> <add key=""keyNotToDelete"" value=""value"" /> </SectionName> <SectionName2> <add key=""key"" value=""value"" /> </SectionName2> </configuration>"; mockFileSystem.AddFile(nugetConfigPath, config); Settings settings = new Settings(mockFileSystem); // Act & Assert Assert.True(settings.DeleteSection("SectionName")); Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <SectionName2> <add key=""key"" value=""value"" /> </SectionName2> </configuration>", mockFileSystem.ReadAllText(nugetConfigPath)); }
public void RemovePackagePreservesProjectConfigFile() { // Arrange var repository = new Mock <MockPackageRepository>() { CallBase = true }.As <ISharedPackageRepository>(); var packageA = PackageUtility.CreatePackage("A"); repository.Object.AddPackage(packageA); var fileSystem = new MockFileSystem(); fileSystem.AddFile("packages.cool.config", @"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""1.0"" /> <package id=""B"" version=""3.0"" /> </packages>"); var referenceRepository = new PackageReferenceRepository(fileSystem, projectName: "cool", sourceRepository: repository.Object); var packageB = PackageUtility.CreatePackage("B", "3.0"); // Act referenceRepository.RemovePackage(packageB); // Assert Assert.False(fileSystem.FileExists("packages.config")); Assert.True(fileSystem.FileExists("packages.cool.config")); string content = fileSystem.ReadAllText("packages.cool.config"); AssertConfig(@"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""1.0"" /> </packages>", content); }
public void CallAddPackageWillNotAddEntryToPackageConfigIfThatEntryAlreadyExists() { // 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"" /> <package id=""B"" version=""1.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"" /> <package id=""B"" version=""1.0"" /> </packages>", configFileSystem.ReadAllText("packages.config")); }
public void AppendToNewlineSeparatedFileTests() { MockFileSystem fileSystem = new MockFileSystem(new MockDirectory(@"mock:\GVFS\UnitTests\Repo", null, null)); // Validate can write to a file that doesn't exist. const string TestFileName = @"mock:\GVFS\UnitTests\Repo\appendTest"; FetchHelper.AppendToNewlineSeparatedFile(fileSystem, TestFileName, "expected content line 1"); fileSystem.ReadAllText(TestFileName).ShouldEqual("expected content line 1\n"); // Validate that if the file doesn't end in a newline it gets a newline added. fileSystem.WriteAllText(TestFileName, "existing content"); FetchHelper.AppendToNewlineSeparatedFile(fileSystem, TestFileName, "expected line 2"); fileSystem.ReadAllText(TestFileName).ShouldEqual("existing content\nexpected line 2\n"); // Validate that if the file ends in a newline, we don't end up with two newlines fileSystem.WriteAllText(TestFileName, "existing content\n"); FetchHelper.AppendToNewlineSeparatedFile(fileSystem, TestFileName, "expected line 2"); fileSystem.ReadAllText(TestFileName).ShouldEqual("existing content\nexpected line 2\n"); }
public void AppendToNewlineSeparatedFileTests() { MockFileSystem fileSystem = new MockFileSystem(new MockDirectory(Path.Combine("mock:", "GVFS", "UnitTests", "Repo"), null, null)); // Validate can write to a file that doesn't exist. string testFileName = Path.Combine("mock:", "GVFS", "UnitTests", "Repo", "appendTests"); PrefetchHelper.AppendToNewlineSeparatedFile(fileSystem, testFileName, "expected content line 1"); fileSystem.ReadAllText(testFileName).ShouldEqual("expected content line 1\n"); // Validate that if the file doesn't end in a newline it gets a newline added. fileSystem.WriteAllText(testFileName, "existing content"); PrefetchHelper.AppendToNewlineSeparatedFile(fileSystem, testFileName, "expected line 2"); fileSystem.ReadAllText(testFileName).ShouldEqual("existing content\nexpected line 2\n"); // Validate that if the file ends in a newline, we don't end up with two newlines fileSystem.WriteAllText(testFileName, "existing content\n"); PrefetchHelper.AppendToNewlineSeparatedFile(fileSystem, testFileName, "expected line 2"); fileSystem.ReadAllText(testFileName).ShouldEqual("existing content\nexpected line 2\n"); }
public void AddPackageReferenceEntryAddsReferenceToPackagesConfigFile() { // 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.AddPackageReferenceEntry(solutionPackage.Id, solutionPackage.Version); Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""SolutionLevel"" version=""1.0"" /> </packages>", configFileSystem.ReadAllText("packages.config")); }
public void AddConnectionString_Modifies_App_Settings_File_As_Required(bool useSqLite, string previousContent, string newContent) { //Arrange var fs = new MockFileSystem(); var appSettingsPath = Path.Combine(AppBase, "appsettings.json"); fs.WriteAllText(appSettingsPath, previousContent); var testObj = GetTestObject(fs); //Act testObj.AddConnectionString("MyDbContext", "MyDbContext-NewGuid", useSqLite); //Assert Assert.Equal(newContent, fs.ReadAllText(appSettingsPath), ignoreCase: false, ignoreLineEndingDifferences: true); }
void ThenAllFilesInThePackagesAppDirectoryWillBeSavedToTheUpgradePrepPath() { _expectedFiles = new List <string>() { @"c:\app\.updates\1.1\app.exe", @"c:\app\.updates\1.1\app.exe.config", @"c:\app\.updates\1.1\nuget.dll", @"c:\app\.updates\1.1\content\logo.png", }; foreach (var expectedFile in _expectedFiles) { _fileSystem.ReadAllText(expectedFile) .ShouldBe(Encoding.UTF8.GetString(GetMockFileBytes(expectedFile))); } }
public void AddPackage_AddsExpandedPackageToThePackageDirectory() { // Arrange var fileSystem = new MockFileSystem(); var repository = new ExpandedPackageRepository(fileSystem); var package = GetPackage(); // Act repository.AddPackage(package); // Assert var reader = Manifest.ReadFrom(fileSystem.OpenFile(@"MyPackage\1.0.0-beta2\MyPackage.nuspec"), validateSchema: true); Assert.Equal("MyPackage", reader.Metadata.Id); Assert.Equal("1.0.0-beta2", reader.Metadata.Version); Assert.True(package.GetStream().ContentEquals(fileSystem.OpenFile(@"MyPackage\1.0.0-beta2\MyPackage.1.0.0-beta2.nupkg"))); Assert.Equal(package.GetHash(new CryptoHashProvider()), fileSystem.ReadAllText(@"MyPackage\1.0.0-beta2\MyPackage.1.0.0-beta2.nupkg.sha512")); }
public void GetPackagesReturnsOnlyValidPackagesFromSourceRepositoryListedInPackagesConfig() { // Arrange var repository = new Mock <MockPackageRepository>() { CallBase = true }.As <ISharedPackageRepository>(); var packageA = PackageUtility.CreatePackage("A"); repository.Object.AddPackage(packageA); var packageC = PackageUtility.CreatePackage("C", "2.0"); repository.Object.AddPackage(packageC); var fileSystem = new MockFileSystem(); fileSystem.AddFile("packages.config", @"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""C"" version=""2.0"" /> <package id=""B"" version=""1.0"" /> <package id=""A"" version=""1.0"" /> <package id="""" version=""1.0"" /> <package id=""G"" version="""" /> <package /> </packages>"); var referenceRepository = new PackageReferenceRepository(fileSystem, repository.Object); // Act var packages = referenceRepository.GetPackages().ToList(); // Assert Assert.Equal(2, packages.Count); Assert.Same(packageC, packages[0]); Assert.Same(packageA, packages[1]); Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""C"" version=""2.0"" /> <package id=""B"" version=""1.0"" /> <package id=""A"" version=""1.0"" /> <package id="""" version=""1.0"" /> <package id=""G"" version="""" /> <package /> </packages>", fileSystem.ReadAllText("packages.config")); }
public void AddConnectionString_Creates_App_Settings_File() { //Arrange var fs = new MockFileSystem(); var testObj = GetTestObject(fs); //Act testObj.AddConnectionString("MyDbContext", "MyDbContext-NewGuid", false); //Assert string expected = @"{ ""ConnectionStrings"": { ""MyDbContext"": ""Server=(localdb)\\mssqllocaldb;Database=MyDbContext-NewGuid;Trusted_Connection=True;MultipleActiveResultSets=true"" } }"; var appSettingsPath = Path.Combine(AppBase, "appsettings.json"); fs.FileExists(appSettingsPath); Assert.Equal(expected, fs.ReadAllText(appSettingsPath), ignoreCase: false, ignoreLineEndingDifferences: true); }
public void TheDisabledStateOfWindows8FeedIsPersistedWhenRunningOnWindows8Express() { // Arrange var mockFileSystem = new MockFileSystem(); var settings = Settings.LoadDefaultSettings( mockFileSystem, configFileName: null, machineWideSettings: null); var packageSourceProvider = new PackageSourceProvider(settings); var vsShellInfo = new Mock <IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(true); var provider = new VsPackageSourceProvider(settings, packageSourceProvider, vsShellInfo.Object); var packageSources = provider.LoadPackageSources().ToList(); Assert.Equal(1, packageSources.Count); Assert.Equal(NuGetConstants.VSExpressForWindows8FeedUrl, packageSources[0].Source); Assert.True(packageSources[0].IsEnabled); // Act packageSources[0].IsEnabled = false; provider.SavePackageSources(packageSources); // Assert // the Win8ExpressFeed is not saved in <disabledPackageSources>. Assert.Equal(1, mockFileSystem.Paths.Count); var configFile = mockFileSystem.Paths.First().Key; var configFileContent = mockFileSystem.ReadAllText(configFile); Assert.Equal( @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <packageSources /> <disabledPackageSources> <add key=""Windows 8 Packages"" value=""true"" /> </disabledPackageSources> </configuration>".Replace("\r", ""), configFileContent.Replace("\r", "")); }
public void SavePackageSourcesWillNotSaveTheWindows8ExpressFeedWhenRunningWindows8Express() { // Arrange var mockFileSystem = new MockFileSystem(); var settings = Settings.LoadDefaultSettings( mockFileSystem, configFileName: null, machineWideSettings: null); var packageSourceProvider = new PackageSourceProvider(settings); var vsShellInfo = new Mock <IVsShellInfo>(); vsShellInfo.Setup(_ => _.IsVisualStudioExpressForWindows8).Returns(true); var provider = new VsPackageSourceProvider(settings, packageSourceProvider, vsShellInfo.Object); var packageSources = provider.LoadPackageSources().ToList(); Assert.Equal(1, packageSources.Count); Assert.Equal(NuGetConstants.VSExpressForWindows8FeedUrl, packageSources[0].Source); Assert.True(packageSources[0].IsEnabled); // Act provider.SavePackageSources(packageSources); // Assert // the Win8ExpressFeed is saved as active source, but not saved // in <packageSources>. Assert.Equal(1, mockFileSystem.Paths.Count); var configFile = mockFileSystem.Paths.First().Key; var configFileContent = mockFileSystem.ReadAllText(configFile); Assert.Equal( @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <activePackageSource> <add key=""Windows 8 Packages"" value=""https://www.nuget.org/api/v2/curated-feeds/windows8-packages/"" /> </activePackageSource> </configuration>".Replace("\r", ""), configFileContent.Replace("\r", "")); }
public void UserSettingsExtentions_SetEncryptedValue() { // Arrange var mockFileSystem = new MockFileSystem(); var nugetConfigPath = "NuGet.Config"; string config = @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <SectionName> <add key=""key"" value=""value"" /> </SectionName> </configuration>"; mockFileSystem.AddFile(nugetConfigPath, config); Settings settings = new Settings(mockFileSystem); // Act settings.SetEncryptedValue("SectionName", "key", "NewValue"); // Assert var content = mockFileSystem.ReadAllText(nugetConfigPath); Assert.False(content.Contains("NewValue")); }
public void DoNotSkipExistingFilesWhileExpandingFiles() { // Arrange var ms = GetPackageStream(); var fileSystem = new MockFileSystem("x:\\"); fileSystem.AddFile("pam.nupkg", ms); var expandedFileSystem = new MockFileSystem("y:\\"); expandedFileSystem.AddFile("random\\content\\foo", "happy new year"); var ozp = new TestableOptimizedZipPackage(fileSystem, "pam.nupkg", expandedFileSystem); // Act ozp.GetFiles().ToList(); // Assert Assert.True(expandedFileSystem.FileExists("random\\content\\foo")); Assert.True(expandedFileSystem.FileExists("random\\lib\\40\\A.dll")); Assert.Equal("content\\foo", expandedFileSystem.ReadAllText("random\\content\\foo")); }
public void AddPackageDoesNotAddEntryToPackagesConfigIfExists() { // Arrange var sharedRepository = new Mock <ISharedPackageRepository>(); var fileSystem = new MockFileSystem(); fileSystem.AddFile("packages.config", @"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""1.0"" /> </packages>"); var referenceRepository = new PackageReferenceRepository(fileSystem, projectName: null, sourceRepository: sharedRepository.Object); var package = PackageUtility.CreatePackage("A"); // Act referenceRepository.AddPackage(package); // Assert Assert.True(fileSystem.FileExists("packages.config")); AssertConfig(@"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""1.0"" /> </packages>", fileSystem.ReadAllText("packages.config")); }
public void AddPackageAddsEntryToPackagesConfig() { // Arrange var sharedRepository = new Mock <ISharedPackageRepository>(); string path = null; sharedRepository.Setup(m => m.RegisterRepository(It.IsAny <string>())) .Callback <string>(p => path = p); var fileSystem = new MockFileSystem(); var referenceRepository = new PackageReferenceRepository(fileSystem, projectName: null, sourceRepository: sharedRepository.Object); var package = PackageUtility.CreatePackage("A"); // Act referenceRepository.AddPackage(package); // Assert Assert.Equal(@"C:\MockFileSystem\packages.config", path); Assert.True(fileSystem.FileExists("packages.config")); AssertConfig(@"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""1.0"" /> </packages>", fileSystem.ReadAllText("packages.config")); }
public void RegisterRepositoryDoesNotAddRelativePathToRepositoriesConfigIfExists() { // Arrange var fileSystem = new MockFileSystem(@"x:\foo"); fileSystem.AddFile("repositories.config", @"<?xml version=""1.0"" encoding=""utf-8""?> <repositories> <repository path=""A\packages.config"" /> <repository path=""B\packages.config"" /> </repositories>"); var repository = new SharedPackageRepository(new DefaultPackagePathResolver(fileSystem), fileSystem, new MockFileSystem()); var packageReferenceFile = new PackageReferenceFile(new MockFileSystem(), @"x:\foo\A\packages.config"); // Act repository.RegisterRepository(packageReferenceFile); // Assert Assert.Equal(@"<?xml version=""1.0"" encoding=""utf-8""?> <repositories> <repository path=""A\packages.config"" /> <repository path=""B\packages.config"" /> </repositories>", fileSystem.ReadAllText("repositories.config")); }
public void RemovePackageRemovesEntryFromPackagesConfig() { // Arrange var sharedRepository = new Mock <ISharedPackageRepository>(); var fileSystem = new MockFileSystem(); fileSystem.AddFile("packages.config", @"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""1.0"" /> <package id=""B"" version=""1.0"" /> </packages>"); var referenceRepository = new PackageReferenceRepository(fileSystem, sharedRepository.Object); var package = PackageUtility.CreatePackage("A"); // Act referenceRepository.RemovePackage(package); // Assert Assert.IsTrue(fileSystem.FileExists("packages.config")); Assert.AreEqual(@"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""B"" version=""1.0"" /> </packages>", fileSystem.ReadAllText("packages.config")); }
public void AddPackageAddsEntryToPackagesConfigWithDevelopmentDependency() { // Arrange var sharedRepository = new Mock <ISharedPackageRepository>(); string path = null; sharedRepository.Setup(m => m.RegisterRepository(It.IsAny <string>())) .Callback <string>(p => path = p); var fileSystem = new MockFileSystem(); var referenceRepository = new PackageReferenceRepository(fileSystem, projectName: null, sourceRepository: sharedRepository.Object); //var package = PackageUtility.CreatePackage("A"); // Act referenceRepository.AddPackage("A", new SemanticVersion("1.0"), true, new FrameworkName("Silverlight, Version=2.0")); // Assert Assert.Equal(@"C:\MockFileSystem\packages.config", path); Assert.True(fileSystem.FileExists("packages.config")); AssertConfig(@"<?xml version=""1.0"" encoding=""utf-8""?> <packages> <package id=""A"" version=""1.0"" targetFramework=""sl20"" developmentDependency=""true""/> </packages>", fileSystem.ReadAllText("packages.config")); }
protected void VerifyFile(MockFileSystem fileSystem, string file, Version version) { fileSystem.ReadAllText(file).ShouldBe(MockFileContent(Path.GetFileName(file), version)); }