示例#1
0
		void CreatePackageFilesWithTwoFiles (string fileName1, string fileName2)
		{
			var package = new FakePackage ();
			package.AddFile (fileName1);
			package.AddFile (fileName2);
			CreatePackageFiles (package);
		}
		public static PackageOperation CreateInstallOperationWithFile (string fileName)
		{
			var package = new FakePackage ();
			package.AddFile (fileName);

			return new PackageOperation (package, PackageAction.Install);
		}
		public PackageOperation AddOneFakeUninstallPackageOperation ()
		{
			var package = new FakePackage ("PackageToUninstall");
			var operation = new FakePackageOperation (package, PackageAction.Uninstall);
			FakeSolution.FakeProjectToReturnFromGetProject.FakeInstallOperations.Add (operation);
			return operation;
		}
		public FakePackage AddPackageInstallOperation ()
		{
			var package = new FakePackage ("Package to install");
			var operation = new PackageOperation (package, PackageAction.Install);
			PackageOperations.Add (operation);
			return package;
		}
		void PackageWithMSBuildTargetsIsRestored ()
		{
			var package = new FakePackage ("MyPackage");
			package.AddFile (@"build\MyPackage.targets");

			packageEvents.OnPackageRestored (package);
		}
		void AddFileToPackageBeingUninstalled (string fileName)
		{
			var package = new FakePackage ();
			package.AddFile (fileName);

			action.Package = package;
		}
		public override void AddPackageReference (string packageId, SemanticVersion version, bool ignoreDependencies, bool allowPrereleaseVersions)
		{
			var package = new FakePackage ();
			package.Id = packageId;
			package.Version = version;
			PackagePassedToAddPackageReference = package;
			IgnoreDependenciesPassedToAddPackageReference = ignoreDependencies;
			AllowPrereleaseVersionsPassedToAddPackageReference = allowPrereleaseVersions;
		}
		FakePackage CreateRepositoryWithOneRecentPackageSavedInOptions ()
		{
			CreateRecentPackages ();
			var package = new FakePackage ("Test");
			aggregateRepository.FakePackages.Add (package);
			recentPackages.Add (new RecentPackageInfo (package));
			CreateRepository (recentPackages);
			return package;
		}
		void CreateViewModel (FakePackageManagementSolution solution)
		{
			viewModelParent = CreateViewModelParent ();
			viewModel = new TestablePackageViewModel (viewModelParent, solution);
			fakePackage = viewModel.FakePackage;
			this.fakeSolution = solution;
			packageManagementEvents = viewModel.PackageManagementEvents;
			fakeLogger = viewModel.FakeLogger;
			fakeUninstallPackageAction = solution.FakeProjectToReturnFromGetProject.FakeUninstallPackageAction;
		}
		public void IsMatch_PackageWithDifferentIdButSameVersionPassed_ReturnsFalse ()
		{
			var version = new SemanticVersion (1, 0, 0, 0);
			var recentPackageInfo = new RecentPackageInfo ("id", version);
			var package = new FakePackage ("different-id");
			package.Version = version;

			bool result = recentPackageInfo.IsMatch (package);

			Assert.IsFalse (result);
		}
		void AddInstallOperationWithFile (string fileName)
		{
			var package = new FakePackage ();
			package.AddFile (fileName);

			var operation = new PackageOperation (package, PackageAction.Install);
			var operations = new List<PackageOperation> ();
			operations.Add (operation);

			action.Operations = operations;
		}
		public void IsMatch_PackageWithSameIdButDifferentVersionPassed_ReturnsFalse ()
		{
			string id = "id";
			var version = new SemanticVersion (1, 0, 0, 0);
			var recentPackageInfo = new RecentPackageInfo (id, version);
			var package = new FakePackage (id);
			package.Version = new SemanticVersion (2, 0, 0, 0);

			bool result = recentPackageInfo.IsMatch (package);

			Assert.IsFalse (result);
		}
		void Init ()
		{
			string config = 
				"<root>\r\n" +
				"    <package id='Test' version='1.0.0.0'/>\r\n" +
				"</root>";

			FakeProjectSystem.FileExistsReturnValue = true;
			FakeProjectSystem.FileToReturnFromOpenFile = config;

			FakePackage package = new FakePackage ("Test", "1.0.0.0");

			FakeSharedSourceRepository.FakePackages.Add (package);
		}
		public void CheckForUpdates_OnePackageUpdated_OneUpdatedPackageFoundForProject ()
		{
			CreateUpdatedPackagesInSolution ();
			FakePackageManagementProject project = AddProjectToSolution ();
			project.AddPackageReference ("MyPackage", "1.0");
			FakePackage updatedPackage = AddUpdatedPackageToAggregateSourceRepository ("MyPackage", "1.1");
			var expectedPackages = new FakePackage [] { updatedPackage };

			updatedPackagesInSolution.CheckForUpdates ();
			UpdatedPackagesInProject updatedPackages = updatedPackagesInSolution.GetUpdatedPackages (project.Project);

			Assert.AreEqual (project.Project, updatedPackages.Project);
			Assert.IsNotNull (updatedPackages.Project);
			CollectionAssert.AreEqual (expectedPackages, updatedPackages.GetPackages ());
		}
		public TestablePackageViewModel (
			IPackageViewModelParent parent,
			FakePackage package,
			PackageManagementSelectedProjects selectedProjects,
			PackageManagementEvents packageManagementEvents,
			FakeLogger logger)
			: base (
				parent,
				package,
				selectedProjects,
				packageManagementEvents,
				null,
				logger)
		{
			this.FakePackage = package;
			this.PackageManagementEvents = packageManagementEvents;
			this.FakeLogger = logger;
		}
		public void GetPackages_OnePackageInstalledIntoOneProjectButTwoPackagesInSolutionRepository_ReturnsOnlyOneProjectPackage ()
		{
			CreateSolution ();
			fakeProjectService.CurrentProject = null;
			AddProjectToOpenProjects ("Test");
			var project = new FakePackageManagementProject ();
			fakeProjectFactory.CreatePackageManagementProject = (repository, msbuildProject) => {
				return project;
			};
			FakePackage installedSolutionPackage = FakePackage.CreatePackageWithVersion ("SolutionPackage", "1.0.0.0");
			fakeSolutionPackageRepository.FakeSharedRepository.FakePackages.Add (installedSolutionPackage);
			FakePackage installedProjectPackage = FakePackage.CreatePackageWithVersion ("ProjectPackage", "1.0.0.0");
			fakeSolutionPackageRepository.FakeSharedRepository.FakePackages.Add (installedProjectPackage);
			project.FakePackages.Add (installedProjectPackage);

			IQueryable<IPackage> packages = solution.GetPackages ();

			var expectedPackages = new FakePackage[] {
				installedProjectPackage
			};

			Assert.AreEqual (expectedPackages, packages);
		}
		public void GetPackagesInReverseDependencyOrder_TwoPackages_ReturnsPackagesFromSolutionLocalRepositoryInCorrectOrder ()
		{
			CreateSolution ();
			FakePackage packageA = AddPackageInReverseDependencyOrderToSolution ("A");
			FakePackage packageB = AddPackageInReverseDependencyOrderToSolution ("A");

			packageB.DependenciesList.Add (new PackageDependency ("A"));

			var expectedPackages = new FakePackage[] {
				packageB,
				packageA
			};

			IEnumerable<IPackage> packages = solution.GetPackagesInReverseDependencyOrder ();

			PackageCollectionAssert.AreEqual (expectedPackages, packages);
		}
		public void GetPackages_OnePackageInSolutionRepository_ReturnsOnePackage ()
		{
			CreateSolution ();
			fakeProjectService.CurrentProject = null;
			FakePackage package = FakePackage.CreatePackageWithVersion ("Test", "1.3.4.5");
			fakeSolutionPackageRepository.FakeSharedRepository.FakePackages.Add (package);
			AddProjectToOpenProjects ("Test");
			var project = new FakePackageManagementProject ();
			fakeProjectFactory.CreatePackageManagementProject = (repository, msbuildProject) => {
				return project;
			};
			project.FakePackages.Add (package);

			IQueryable<IPackage> packages = solution.GetPackages ();

			var expectedPackages = new FakePackage[] {
				package
			};
			PackageCollectionAssert.AreEqual (expectedPackages, packages);
		}
示例#19
0
 public FakePackage AddFakePackage(FakePackage package)
 {
     FakePackages.Add(package);
     return(package);
 }
		public void GetUpdatedPackages_OnePackageHasUpdatesAndNewerVersionButNotLatestIsInstalled_UpdatesStillShowAsAvailable ()
		{
			CreateUpdatedPackagesInSolution ();
			FakePackageManagementProject project = AddProjectToSolution ();
			project.AddPackageReference ("MyPackage", "1.0");
			var newerPackage = new FakePackage ("MyPackage", "1.1");
			FakePackage updatedPackage = AddUpdatedPackageToAggregateSourceRepository ("MyPackage", "1.9");
			updatedPackagesInSolution.CheckForUpdates ();
			project.PackageReferences.Clear ();
			project.AddPackageReference ("MyPackage", "1.1");
			packageManagementEvents.OnParentPackageInstalled (newerPackage, project);

			UpdatedPackagesInProject updatedPackages = updatedPackagesInSolution.GetUpdatedPackages (project.Project);

			Assert.AreEqual (1, updatedPackages.GetPackages ().Count ());
			Assert.AreEqual ("MyPackage", updatedPackages.GetPackages ().First ().Id);
			Assert.AreEqual ("1.9", updatedPackages.GetPackages ().First ().Version.ToString ());
		}
		public void GetUpdatedPackages_OnePackageUpdatedSameUnderlyingDotNetProjectButDifferentProxy_OneUpdatedPackageFoundForProject ()
		{
			CreateUpdatedPackagesInSolution ();
			FakePackageManagementProject project = AddProjectToSolution ();
			project.AddPackageReference ("MyPackage", "1.0");
			FakePackage updatedPackage = AddUpdatedPackageToAggregateSourceRepository ("MyPackage", "1.1");
			var expectedPackages = new FakePackage [] { updatedPackage };
			var newProject = new FakeDotNetProject ();
			project.FakeDotNetProject.EqualsAction = p => {
				return p == newProject;
			};
			updatedPackagesInSolution.CheckForUpdates ();

			UpdatedPackagesInProject updatedPackages = updatedPackagesInSolution.GetUpdatedPackages (newProject);

			Assert.IsNotNull (updatedPackages.Project);
			CollectionAssert.AreEqual (expectedPackages, updatedPackages.GetPackages ());
			Assert.AreNotEqual (newProject, updatedPackages.Project);
		}
 public TestPackageHelper(string id, string version)
 {
     Package = new FakePackage(id, version);
 }
示例#23
0
 public void AddPackageToActiveProjectLocalRepository(FakePackage package)
 {
     FakeActiveProject.FakePackages.Add(package);
 }
		public void GetPackages_OnePackageInstalledIntoPackagesFolderOnly_ReturnsNoPackages ()
		{
			CreateSolution ();
			fakeProjectService.CurrentProject = null;
			FakePackage fakePackage = FakePackage.CreatePackageWithVersion ("One", "1.0");
			fakeSolutionPackageRepository.FakeSharedRepository.FakePackages.Add (fakePackage);

			IQueryable<IPackage> packages = solution.GetPackages ();

			var expectedPackages = new FakePackage [0];
			Assert.AreEqual (expectedPackages, packages);
		}
		void CreatePackageWithSummary (string summary)
		{
			package = new FakePackage { Summary = summary };
		}
		public void ParentPackagesUpdated_UnsafeEventFiredAndInvokeRequired_ThreadSafeEventIsSafelyInvoked ()
		{
			CreateEvents ();
			threadSafeEvents.ParentPackagesUpdated += OnEventHandlerFired;
			var expectedPackages = new FakePackage[] { new FakePackage () };

			unsafeEvents.OnParentPackagesUpdated (expectedPackages);

			Assert.IsTrue (isGuiSyncDispatchCalled);
		}
		public void OnParentPackageUninstalled_NoInvokeRequired_NonThreadSafeOnParentPackageUninstalledMethodCalled ()
		{
			CreateEvents ();
			IPackage package = null;
			IPackageManagementProject project = null;
			unsafeEvents.ParentPackageUninstalled += (sender, e) => {
				package = e.Package;
				project = e.Project;
			};
			var expectedPackage = new FakePackage ();
			var expectedProject = new FakePackageManagementProject ();

			threadSafeEvents.OnParentPackageUninstalled (expectedPackage, expectedProject);

			Assert.AreEqual (expectedPackage, package);
		}
		FakePackage AddPackageInReverseDependencyOrderToSolution (string packageId)
		{
			var package = new FakePackage (packageId);
			fakeSolutionPackageRepository.FakePackagesByReverseDependencyOrder.Add (package);
			return package;
		}
		public void ReadPackages_SearchForAllOnePointZeroPackageVersionsUsingVersionOne_ReturnsAllOnePointZeroVersions ()
		{
			CreateViewModel ();
			AddOnePackageSourceToRegisteredSources ();
			var package1 = new FakePackage ("A", "1.0.0.0") { IsLatestVersion = false };
			var package2 = new FakePackage ("A", "2.1.0.0");
			var package3 = new FakePackage ("A", "2.0.0.0") { IsLatestVersion = false };
			var package4 = new FakePackage ("A", "1.1.0.0") { IsLatestVersion = false };
			var package5 = new FakePackage ("A", "1.9.0.0") { IsLatestVersion = false };
			var package6 = new FakePackage ("A", "1.2.0.0") { IsLatestVersion = false };
			var package7 = new FakePackage ("A", "1.3.0.0") { IsLatestVersion = false };
			var package8 = new FakePackage ("A", "0.1.0.0") { IsLatestVersion = false };
			var packages = new FakePackage[] {
				package1, package2, package3, package4, package5, package6, package7, package8
			};
			registeredPackageRepositories.FakeActiveRepository.FakePackages.AddRange (packages);
			SearchForAllPackageVersions ("a", "1");

			viewModel.ReadPackages ();
			CompleteReadPackagesTask ();

			var expectedPackages = new FakePackage[] {
				package5, package7, package6, package4, package1
			};
			PackageCollectionAssert.AreEqual (expectedPackages, viewModel.PackageViewModels);
		}
		public void OnParentPackagesUpdated_NoInvokeRequired_NonThreadSafeOnParentPackagesUpdatedMethodCalled ()
		{
			CreateEvents ();
			IEnumerable<IPackage> packages = null;
			unsafeEvents.ParentPackagesUpdated += (sender, e) => packages = e.Packages;
			var expectedPackages = new FakePackage[] { new FakePackage () };

			threadSafeEvents.OnParentPackagesUpdated (expectedPackages);

			Assert.AreEqual (expectedPackages, packages);
		}
示例#31
0
 public TestablePackageFromRepository(FakePackage package, FakePackageRepository repository)
     : base(package, repository)
 {
     this.FakePackagePassedToConstructor           = package;
     this.FakePackageRepositoryPassedToConstructor = repository;
 }
		public void ParentPackagesUpdated_UnsafeEventFiredAndInvokeRequiredButNoEventHandlerRegistered_ThreadSafeEventIsNotInvoked ()
		{
			CreateEvents ();
			var packages = new FakePackage[] { new FakePackage () };
			unsafeEvents.OnParentPackagesUpdated (packages);

			Assert.IsFalse (isGuiSyncDispatchCalled);
		}
		public void RecentPackages_OneRecentPackageAddedAndOptionsReloadedFromSavedProperties_ContainsOneRecentPackageThatWasSavedPreviously ()
		{
			CreateOptions ();
			var package = new FakePackage ("Test");
			var recentPackage = new RecentPackageInfo (package);
			options.RecentPackages.Add (recentPackage);
			CreateOptions (properties);

			IList<RecentPackageInfo> recentPackages = options.RecentPackages;

			var expectedRecentPackages = new RecentPackageInfo[] {
				new RecentPackageInfo (package)
			};

			RecentPackageInfoCollectionAssert.AreEqual (expectedRecentPackages, recentPackages);
		}
		void CreatePackageWithTitle (string title)
		{
			package = new FakePackage { Title = title };
		}
 public FakePackageOperation(FakePackage package, PackageAction action)
     : base(package, action)
 {
     this.FakePackage = package;
 }