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 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); }