void CreateViewModel(
			FakePackageManagementSolution solution, 
			IThreadSafePackageManagementEvents packageManagementEvents)
		{
			fakeTaskFactory = new FakeTaskFactory();
			fakeLicenseAcceptanceService = new FakeLicenseAcceptanceService();
			fakeSelectProjectsService = new FakeSelectProjectsService();
			userPrompts = new ManagePackagesUserPrompts(
				packageManagementEvents,
				fakeLicenseAcceptanceService,
				fakeSelectProjectsService);
			fakeActionRunner = new FakePackageActionRunner();
			
			packagesViewModels = new PackagesViewModels(
				solution,
				fakeRegisteredPackageRepositories,
				packageManagementEvents,
				fakeActionRunner,
				fakeTaskFactory);
			
			viewTitle = new ManagePackagesViewTitle(solution);
			
			viewModel = new ManagePackagesViewModel(
				packagesViewModels,
				viewTitle,
				packageManagementEvents,
				userPrompts);
			fakeTaskFactory.ExecuteAllFakeTasks();
		}
		void CreateViewModel(FakePackageManagementSolution solution, IThreadSafePackageManagementEvents packageManagementEvents)
		{
			taskFactory = new FakeTaskFactory();
			fakeLicenseAcceptanceSevice = new FakeLicenseAcceptanceService();
			fakeActionRunner = new FakePackageActionRunner();
			viewModel = new ManagePackagesViewModel(
				solution,
				fakeRegisteredPackageRepositories,
				packageManagementEvents,
				fakeActionRunner,
				fakeLicenseAcceptanceSevice,
				taskFactory);
			taskFactory.ExecuteAllFakeTasks();
		}
 public TestablePackageViewModel(
     FakePackage package,
     FakePackageManagementService packageManagementService,
     FakeLicenseAcceptanceService licenseAcceptanceService,
     FakeMessageReporter messageReporter)
     : base(
         package,
         packageManagementService,
         licenseAcceptanceService,
         messageReporter)
 {
     this.FakePackage = package;
     this.FakePackageManagementService = packageManagementService;
     this.FakeLicenseAcceptanceService = licenseAcceptanceService;
     this.FakeMessageReporter          = messageReporter;
     this.FakeSourcePackageRepository  = FakePackageManagementService.FakeActivePackageRepository;
 }
		public TestableUpdatedPackageViewModel(
			FakePackage package,
			FakePackageManagementService packageManagementService,
			FakeLicenseAcceptanceService licenseAcceptanceService,
			FakeMessageReporter messageReporter)
			: base(
				package,
				packageManagementService,
				licenseAcceptanceService,
				messageReporter)
		{
			this.FakePackage = package;
			this.FakePackageManagementService = packageManagementService;
			this.FakeLicenseAcceptanceService = licenseAcceptanceService;
			this.FakeMessageReporter = messageReporter;
			this.FakeSourcePackageRepository = FakePackageManagementService.FakeActivePackageRepository;
		}