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);
            }
Beispiel #5
0
            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();
            }
Beispiel #6
0
            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();
            }
Beispiel #7
0
            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();
            }
Beispiel #8
0
            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);
            }