private CompositionContainer Initialize() { var assemblyName = Assembly.GetEntryAssembly().FullName; var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var catalog = new AggregateCatalog( new AssemblyCatalog(Assembly.Load(assemblyName)), new DirectoryCatalog(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "NuGet*.dll")); var container = new CompositionContainer(catalog); var settings = Settings.LoadDefaultSettings(null, null, null); container.ComposeExportedValue(settings); var sourceRepositoryProvider = new SourceRepositoryProvider(settings, Repository.Provider.GetVisualStudio()); container.ComposeExportedValue <ISourceRepositoryProvider>(sourceRepositoryProvider); var testSolutionManager = new TestSolutionManager(@"c:\temp\test"); var projectA = testSolutionManager.AddNewMSBuildProject("projectA"); container.ComposeExportedValue <ISolutionManager>(testSolutionManager); var sourceControlManager = new TestSourceControlManager(); var sourceControlManagerProvider = new TestSourceControlManagerProvider(sourceControlManager); container.ComposeExportedValue <ISourceControlManagerProvider>(sourceControlManagerProvider); container.ComposeParts(this); return(container); }
public async Task InstallPackageAsync_WithSourceControlDisabled() { // Arrange var packageIdentity = new PackageIdentity("packageA", new NuGetVersion("1.0.0")); using (var randomTestSourcePath = TestDirectory.Create()) using (var randomTestDestinationPath = TestDirectory.Create()) { var packageFileInfo = TestPackagesGroupedByFolder.GetLegacyTestPackage( randomTestSourcePath, packageIdentity.Id, packageIdentity.Version.ToNormalizedString()); // Create a nuget.config file with source control disabled File.WriteAllText( Path.Combine(randomTestSourcePath, "nuget.config"), @"<?xml version=""1.0"" encoding=""utf-8""?> <configuration> <solution> <add key=""disableSourceControlIntegration"" value=""true"" /> </solution > </configuration>"); var settings = new Settings(randomTestSourcePath); var folderNuGetProject = new FolderNuGetProject(randomTestDestinationPath); var packagePathResolver = new PackagePathResolver(randomTestDestinationPath); var packageInstallPath = packagePathResolver.GetInstallPath(packageIdentity); var nupkgFilePath = Path.Combine(packageInstallPath, packagePathResolver.GetPackageFileName(packageIdentity)); var testSourceControlManager = new TestSourceControlManager(settings); var testNuGetProjectContext = new TestNuGetProjectContext() { SourceControlManagerProvider = new TestSourceControlManagerProvider(testSourceControlManager) }; var token = CancellationToken.None; using (var packageStream = GetDownloadResourceResult(packageFileInfo)) { // Act await folderNuGetProject.InstallPackageAsync( packageIdentity, packageStream, testNuGetProjectContext, token); } // Assert Assert.True(File.Exists(nupkgFilePath)); Assert.Equal(0, testSourceControlManager.PendAddedFiles.Count); } }
public async Task InstallPackageAsync_WithSourceControlEnabled() { // Arrange var packageIdentity = new PackageIdentity("packageA", new NuGetVersion("1.0.0")); using (var randomTestSourcePath = TestDirectory.Create()) using (var randomTestDestinationPath = TestDirectory.Create()) { var packageFileInfo = TestPackagesGroupedByFolder.GetLegacyTestPackage( randomTestSourcePath, packageIdentity.Id, packageIdentity.Version.ToNormalizedString()); var folderNuGetProject = new FolderNuGetProject(randomTestDestinationPath); var packagePathResolver = new PackagePathResolver(randomTestDestinationPath); var packageInstallPath = packagePathResolver.GetInstallPath(packageIdentity); var nupkgFilePath = Path.Combine(packageInstallPath, packagePathResolver.GetPackageFileName(packageIdentity)); var testSourceControlManager = new TestSourceControlManager(); var testNuGetProjectContext = new TestNuGetProjectContext() { SourceControlManagerProvider = new TestSourceControlManagerProvider(testSourceControlManager) }; var token = CancellationToken.None; using (var packageStream = GetDownloadResourceResult(packageFileInfo)) { // Act await folderNuGetProject.InstallPackageAsync( packageIdentity, packageStream, testNuGetProjectContext, token); } // Assert Assert.True(File.Exists(nupkgFilePath)); Assert.Equal(5, testSourceControlManager.PendAddedFiles.Count); Assert.True(testSourceControlManager.PendAddedFiles.Contains(nupkgFilePath)); var expectedEntries = new[] { "lib/test.dll", "lib/net40/test40.dll", "lib/net40/test40b.dll", "lib/net45/test45.dll" }; Assert.All( expectedEntries.Select(e => Path.Combine(packageInstallPath, e.Replace('/', Path.DirectorySeparatorChar))), item => Assert.Contains(item, testSourceControlManager.PendAddedFiles)); } }