public void OldVersionOfPackageUninstalled() { var oldPackage = new MockPackage(); var package = new MockPackage { Version = new SemanticVersion("2.0") }; var mockRepository = new MockPackageRepository(); mockRepository.AddPackage(oldPackage); var mockPackageMan = MockGenerator.CreateMockPackageManager(mockRepository, mockRepository); mockPackageMan.Setup(packMan => packMan.UninstallPackage(oldPackage, It.IsAny <bool>(), It.IsAny <bool>())) .Verifiable(); var mockProjectMan = MockGenerator.CreateMockProjectManager(mockRepository, mockRepository); Dependencies.NuGetPackageManagerFactory = MockGenerator.CreatePackageManagerFactory(mockPackageMan.Object); Dependencies.NuGetProjectManagerFactory = MockGenerator.CreateProjectManagerFactory(mockProjectMan.Object); // act WebNuGetProject project = new WebNuGetProject(new string[] { }, @"C:\DummyPath", null, MockGenerator.CreateWebProjectSystemFactory()); var warnings = project.UpdatePackage(package); // assert mockPackageMan.Verify(); }
public void RemoveFromPackageManagerAfterRemovingFromProjectManager() { var package = new MockPackage(); bool calledProjectManager = false; bool calledPackageManagerAfterProjectManager = false; var mockPackageMan = new Mock <IPackageManager>() { DefaultValue = DefaultValue.Mock }; mockPackageMan.Setup(packMan => packMan.UninstallPackage(package, It.IsAny <bool>(), It.IsAny <bool>())) .Callback(() => calledPackageManagerAfterProjectManager = calledProjectManager); var mockProjectMan = new Mock <IProjectManager>() { DefaultValue = DefaultValue.Mock }; mockProjectMan.Setup(projMan => projMan.RemovePackageReference(It.IsAny <IPackage>(), false, true)) .Callback(() => calledProjectManager = true); Dependencies.NuGetPackageManagerFactory = MockGenerator.CreatePackageManagerFactory(mockPackageMan.Object); Dependencies.NuGetProjectManagerFactory = MockGenerator.CreateProjectManagerFactory(mockProjectMan.Object); // act WebNuGetProject project = new WebNuGetProject(new string[] { }, @"C:\DummyPath", null, MockGenerator.CreateWebProjectSystemFactory()); var warnings = project.UninstallPackage(package, true); // assert Assert.True(calledPackageManagerAfterProjectManager); }
public void InstallNewPackageToPackageManagerBeforeProjectManager() { var package = new MockPackage(); var mockRepository = new MockPackageRepository(); mockRepository.AddPackage(package); bool calledPackageManager = false; bool calledProjectManagerAfterPackageManager = false; var mockPackageMan = MockGenerator.CreateMockPackageManager(mockRepository, mockRepository); mockPackageMan.Setup(packMan => packMan.InstallPackage(package, It.IsAny <bool>(), It.IsAny <bool>())) .Callback(() => calledPackageManager = true); var mockProjectMan = MockGenerator.CreateMockProjectManager(mockRepository, mockRepository); mockProjectMan.Setup(projMan => projMan.UpdatePackageReference(package.Id, package.Version, It.IsAny <bool>(), It.IsAny <bool>())) .Callback(() => calledProjectManagerAfterPackageManager = calledPackageManager); Dependencies.NuGetPackageManagerFactory = MockGenerator.CreatePackageManagerFactory(mockPackageMan.Object); Dependencies.NuGetProjectManagerFactory = MockGenerator.CreateProjectManagerFactory(mockProjectMan.Object); // act WebNuGetProject project = new WebNuGetProject(new string[] {}, @"C:\DummyPath", null, MockGenerator.CreateWebProjectSystemFactory()); var warnings = project.UpdatePackage(package); // assert Assert.True(calledProjectManagerAfterPackageManager); }
public void UninstallOldPackageFails_HandleGracefully() { var oldPackage = new MockPackage(); var package = new MockPackage { Version = new SemanticVersion("2.0") }; var mockRepository = new MockPackageRepository(); mockRepository.AddPackage(oldPackage); var mockPackageMan = MockGenerator.CreateMockPackageManager(mockRepository, mockRepository); mockPackageMan.Setup(packMan => packMan.UninstallPackage(oldPackage, It.IsAny <bool>(), It.IsAny <bool>())) .Throws(new InvalidOperationException("Dummy message")); mockPackageMan.SetupProperty(packMan => packMan.Logger, new TestEasy.NuGet.WebNuGetProject.ErrorLogger()); var mockProjectMan = MockGenerator.CreateMockProjectManager(mockRepository, mockRepository); Dependencies.NuGetPackageManagerFactory = MockGenerator.CreatePackageManagerFactory(mockPackageMan.Object); Dependencies.NuGetProjectManagerFactory = MockGenerator.CreateProjectManagerFactory(mockProjectMan.Object); // act WebNuGetProject project = new WebNuGetProject(new string[] { }, @"C:\DummyPath", null, MockGenerator.CreateWebProjectSystemFactory()); var warnings = project.UpdatePackage(package); // assert Assert.Contains("Package MockPackage.1.0 could not be uninstalled: Dummy message", warnings); }
public void PackageAvailableFromLocal_InstallSucceeds() { // arrange var package = new MockPackage(); var mockLocalRepository = new MockPackageRepository(); var mockRemoteRepository = new MockPackageRepository(); mockLocalRepository.AddPackage(package); var mockPackageManager = new Mock <IPackageManager>(); var mockProjectManager = MockGenerator.CreateMockProjectManager(mockRemoteRepository, mockLocalRepository); mockProjectManager.Setup(pm => pm.AddPackageReference(package, It.IsAny <bool>(), It.IsAny <bool>())).Verifiable(); Dependencies.NuGetPackageManagerFactory = MockGenerator.CreatePackageManagerFactory(mockPackageManager.Object); Dependencies.NuGetProjectManagerFactory = MockGenerator.CreateProjectManagerFactory(mockProjectManager.Object); Dependencies.NuGetProjectSystemFactory = MockGenerator.CreateProjectSystemFactory(); // act NuGetCore core = new NuGetCore(); var warnings = core.InstallPackage(@"C:\DummyPath", MockPackage.DefaultId, "http://dummyFeed", MockPackage.DefaultVersion.ToString()); // assert mockProjectManager.Verify(); }
public void PackageAvailableFromLocal_UpdateSucceeds() { // arrange var targetPackage = new MockPackage() { Version = new SemanticVersion("2.0") }; var mockLocalRepository = new MockPackageRepository(); var mockRemoteRepository = new MockPackageRepository(); mockLocalRepository.AddPackage(new MockPackage()); mockLocalRepository.AddPackage(targetPackage); var mockPackageManager = MockGenerator.CreateMockPackageManager(mockRemoteRepository, mockLocalRepository); var mockProjectManager = MockGenerator.CreateMockProjectManager(mockRemoteRepository, mockLocalRepository); mockProjectManager.Setup(pm => pm.UpdatePackageReference(targetPackage.Id, targetPackage.Version, It.IsAny <bool>(), It.IsAny <bool>())).Verifiable(); Dependencies.NuGetPackageManagerFactory = MockGenerator.CreatePackageManagerFactory(mockPackageManager.Object); Dependencies.NuGetProjectManagerFactory = MockGenerator.CreateProjectManagerFactory(mockProjectManager.Object); Dependencies.NuGetProjectSystemFactory = MockGenerator.CreateProjectSystemFactory(); // act NuGetCore core = new NuGetCore(); var warnings = core.UpdatePackage(@"C:\DummyPath", MockPackage.DefaultId, "http://dummyFeed", "2.0"); // assert mockProjectManager.Verify(); }
public void DontSpecifyVersion_UpdatesToLatestPackage() { var latestPackage = new MockPackage { Version = new SemanticVersion("3.0") }; var mockLocalRepository = new MockPackageRepository(); var mockRemoteRepository = new MockPackageRepository(); mockLocalRepository.AddPackage(new MockPackage()); mockRemoteRepository.AddPackage(new MockPackage { Version = new SemanticVersion("2.0") }); mockRemoteRepository.AddPackage(latestPackage); var mockPackageManager = MockGenerator.CreateMockPackageManager(mockRemoteRepository, mockLocalRepository); var mockProjectManager = MockGenerator.CreateMockProjectManager(mockRemoteRepository, mockLocalRepository); mockProjectManager.Setup(pm => pm.UpdatePackageReference(latestPackage.Id, latestPackage.Version, It.IsAny <bool>(), It.IsAny <bool>())).Verifiable(); Dependencies.NuGetPackageManagerFactory = MockGenerator.CreatePackageManagerFactory(mockPackageManager.Object); Dependencies.NuGetProjectManagerFactory = MockGenerator.CreateProjectManagerFactory(mockProjectManager.Object); Dependencies.NuGetProjectSystemFactory = MockGenerator.CreateProjectSystemFactory(); // act NuGetCore core = new NuGetCore(); var warnings = core.UpdatePackage(@"C:\DummyPath", MockPackage.DefaultId, "http://dummyFeed", null); // assert mockProjectManager.Verify(); }
public void PackageNotFound_ThrowsException() { // arrange var mockLocalRepository = new MockPackageRepository(); var mockRemoteRepository = new MockPackageRepository(); var mockPackageManager = new Mock <IPackageManager>(); var mockProjectManager = MockGenerator.CreateMockProjectManager(mockRemoteRepository, mockLocalRepository); Dependencies.NuGetPackageManagerFactory = MockGenerator.CreatePackageManagerFactory(mockPackageManager.Object); Dependencies.NuGetProjectManagerFactory = MockGenerator.CreateProjectManagerFactory(mockProjectManager.Object); Dependencies.NuGetProjectSystemFactory = MockGenerator.CreateProjectSystemFactory(); string dummyPackage = "DummyPackage"; string dummyVersion = "1.0"; // act // assert NuGetCore core = new NuGetCore(); var ex = Assert.Throws <Exception>(() => core.InstallPackage(@"C:\DummyPath", dummyPackage, "", dummyVersion)); Assert.Contains(string.Format("No package named {0}.{1} found at location", dummyPackage, dummyVersion), ex.Message); }