Browse Source

Fix Manage button not being enabled in Manage Packages dialog after installing packages into solution which initially had no NuGet packages.

pull/16/merge
Matt Ward 15 years ago
parent
commit
0b4e6b3ae3
  1. 10
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSelectedProjects.cs
  2. 1
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageViewModel.cs
  3. 6
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableUpdatedPackageViewModel.cs
  4. 108
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementSelectedProjectsTests.cs
  5. 21
      src/AddIns/Misc/PackageManagement/Test/Src/PackageViewModelTests.cs
  6. 14
      src/AddIns/Misc/PackageManagement/Test/Src/SelectedProjectsForInstalledPackagesTests.cs
  7. 19
      src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackageViewModelTests.cs

10
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSelectedProjects.cs

@ -20,6 +20,7 @@ namespace ICSharpCode.PackageManagement @@ -20,6 +20,7 @@ namespace ICSharpCode.PackageManagement
public PackageManagementSelectedProjects(IPackageManagementSolution solution)
{
this.solution = solution;
GetHasSingleProjectSelected();
}
public IEnumerable<IPackageManagementSelectedProject> GetProjects(IPackageFromRepository package)
@ -36,12 +37,17 @@ namespace ICSharpCode.PackageManagement @@ -36,12 +37,17 @@ namespace ICSharpCode.PackageManagement
public bool HasSingleProjectSelected()
{
if (!singleProjectSelected.HasValue) {
singleMSBuildProjectSelected = solution.GetActiveMSBuildProject();
singleProjectSelected = singleMSBuildProjectSelected != null;
GetHasSingleProjectSelected();
}
return singleProjectSelected.Value;
}
void GetHasSingleProjectSelected()
{
singleMSBuildProjectSelected = solution.GetActiveMSBuildProject();
singleProjectSelected = singleMSBuildProjectSelected != null;
}
IEnumerable<IProject> GetOpenProjects()
{
return solution.GetMSBuildProjects();

1
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageViewModel.cs

@ -25,7 +25,6 @@ namespace PackageManagement.Tests.Helpers @@ -25,7 +25,6 @@ namespace PackageManagement.Tests.Helpers
new FakeLogger())
{
this.FakeSolution = solution;
solution.FakeActiveMSBuildProject = ProjectHelper.CreateTestProject();
}
public TestablePackageViewModel(

6
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableUpdatedPackageViewModel.cs

@ -18,11 +18,6 @@ namespace PackageManagement.Tests.Helpers @@ -18,11 +18,6 @@ namespace PackageManagement.Tests.Helpers
public ILogger LoggerUsedWhenCreatingPackageResolver;
public FakePackageActionRunner FakeActionRunner;
public TestableUpdatedPackageViewModel()
: this(new FakePackageManagementSolution())
{
}
public TestableUpdatedPackageViewModel(FakePackageManagementSolution solution)
: this(
new FakePackage(),
@ -32,7 +27,6 @@ namespace PackageManagement.Tests.Helpers @@ -32,7 +27,6 @@ namespace PackageManagement.Tests.Helpers
new FakeLogger())
{
this.FakeSolution = solution;
solution.FakeActiveMSBuildProject = ProjectHelper.CreateTestProject("MyProject");
}
public TestableUpdatedPackageViewModel(

108
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementSelectedProjectsTests.cs

@ -22,9 +22,13 @@ namespace PackageManagement.Tests @@ -22,9 +22,13 @@ namespace PackageManagement.Tests
void CreateSelectedProjects()
{
fakeSolution = new FakePackageManagementSolution();
selectedProjects = new PackageManagementSelectedProjects(fakeSolution);
}
void CreateFakeSolution()
{
fakeSolution = new FakePackageManagementSolution();
}
List<IProject> AddSolutionWithOneProjectToProjectService()
{
@ -56,13 +60,14 @@ namespace PackageManagement.Tests @@ -56,13 +60,14 @@ namespace PackageManagement.Tests
[Test]
public void GetProjects_SolutionHasTwoProjectsAndOneProjectSelectedInProjectsBrowser_ReturnsProjectSelectedInProjects()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
IProject project = projectsAddedToSolution[1];
project.Name = "MyProject";
fakeSolution.FakeActiveMSBuildProject = project;
var fakeProject = fakeSolution.AddFakeProjectToReturnFromGetProject("MyProject");
CreateSelectedProjects();
var fakePackage = new FakePackage();
var projects = new List<IPackageManagementSelectedProject>();
@ -78,13 +83,14 @@ namespace PackageManagement.Tests @@ -78,13 +83,14 @@ namespace PackageManagement.Tests
[Test]
public void GetProjects_SolutionHasTwoProjectsAndOneProjectSelectedInitiallyAndGetProjectsCalledAgainAfterNoProjectsAreSelected_ReturnsProjectSelectedInProjects()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
IProject project = projectsAddedToSolution[1];
project.Name = "MyProject";
fakeSolution.FakeActiveMSBuildProject = project;
var fakeProject = fakeSolution.AddFakeProjectToReturnFromGetProject("MyProject");
CreateSelectedProjects();
var fakePackage = new FakePackage();
var projects = new List<IPackageManagementSelectedProject>();
@ -105,10 +111,11 @@ namespace PackageManagement.Tests @@ -105,10 +111,11 @@ namespace PackageManagement.Tests
[Test]
public void HasMultipleProjects_SolutionHasTwoProjectsAndOneProjectSelectedInProjectsBrowser_ReturnsFalse()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
IProject expectedProject = projectsAddedToSolution[1];
fakeSolution.FakeActiveMSBuildProject = expectedProject;
CreateSelectedProjects();
bool hasMultipleProjects = selectedProjects.HasMultipleProjects();
@ -118,7 +125,7 @@ namespace PackageManagement.Tests @@ -118,7 +125,7 @@ namespace PackageManagement.Tests
[Test]
public void GetProjects_SolutionHasTwoProjectsAndNoProjectSelectedInProjectsBrowser_ReturnsAllProjectsInSolutionForPackage()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
projectsAddedToSolution[0].Name = "Project A";
projectsAddedToSolution[1].Name = "Project B";
@ -126,6 +133,7 @@ namespace PackageManagement.Tests @@ -126,6 +133,7 @@ namespace PackageManagement.Tests
fakeSolution.AddFakeProjectToReturnFromGetProject("Project A");
fakeSolution.AddFakeProjectToReturnFromGetProject("Project B");
CreateSelectedProjects();
var fakePackage = new FakePackage();
var projects = new List<IPackageManagementSelectedProject>();
@ -141,9 +149,10 @@ namespace PackageManagement.Tests @@ -141,9 +149,10 @@ namespace PackageManagement.Tests
[Test]
public void HasMultipleProjects_SolutionHasTwoProjectsAndNoProjectSelectedInProjectsBrowser_ReturnsTrue()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveProject = null;
CreateSelectedProjects();
bool hasMultipleProjects = selectedProjects.HasMultipleProjects();
@ -153,9 +162,10 @@ namespace PackageManagement.Tests @@ -153,9 +162,10 @@ namespace PackageManagement.Tests
[Test]
public void HasMultipleProjects_SolutionHasOneProjectAndNoProjectSelectedInProjectsBrowser_ReturnsFalse()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithOneProjectToProjectService();
fakeSolution.FakeActiveProject = null;
CreateSelectedProjects();
bool hasMultipleProjects = selectedProjects.HasMultipleProjects();
@ -165,10 +175,11 @@ namespace PackageManagement.Tests @@ -165,10 +175,11 @@ namespace PackageManagement.Tests
[Test]
public void SelectionName_SolutionHasOneProject_ReturnsProjectNameWithoutFileExtension()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithOneProjectToProjectService();
projectsAddedToSolution[0].Name = "MyProject";
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
CreateSelectedProjects();
string name = selectedProjects.SelectionName;
@ -178,10 +189,11 @@ namespace PackageManagement.Tests @@ -178,10 +189,11 @@ namespace PackageManagement.Tests
[Test]
public void SelectionName_SolutionHasTwoProjectsAndNoProjectSelected_ReturnsSolutionFileNameWithoutFullPath()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
NoProjectsSelected();
fakeSolution.FileName = @"d:\projects\MyProject\MySolution.sln";
CreateSelectedProjects();
string name = selectedProjects.SelectionName;
@ -191,12 +203,13 @@ namespace PackageManagement.Tests @@ -191,12 +203,13 @@ namespace PackageManagement.Tests
[Test]
public void IsPackageInstalled_PackageInstalledInSolutionWithTwoProjectsAndNoProjectSelected_ReturnsTrue()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
NoProjectsSelected();
var package = new FakePackage("Test");
fakeSolution.FakeInstalledPackages.Add(package);
CreateSelectedProjects();
bool installed = selectedProjects.IsPackageInstalled(package);
@ -206,9 +219,10 @@ namespace PackageManagement.Tests @@ -206,9 +219,10 @@ namespace PackageManagement.Tests
[Test]
public void IsPackageInstalled_PackageIsInstalledInSolutionWithTwoProjectsAndNoProjectSelected_ReturnsFalse()
{
CreateSelectedProjects();
CreateFakeSolution();
AddSolutionWithTwoProjectsToProjectService();
NoProjectsSelected();
CreateSelectedProjects();
var package = new FakePackage("Test");
bool installed = selectedProjects.IsPackageInstalled(package);
@ -219,12 +233,13 @@ namespace PackageManagement.Tests @@ -219,12 +233,13 @@ namespace PackageManagement.Tests
[Test]
public void IsPackageInstalled_PackageIsInstalledInProjectAndProjectSelected_ReturnsTrue()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
var package = new FakePackage("Test");
fakeSolution.FakeProjectToReturnFromGetProject.FakePackages.Add(package);
CreateSelectedProjects();
bool installed = selectedProjects.IsPackageInstalled(package);
@ -234,9 +249,10 @@ namespace PackageManagement.Tests @@ -234,9 +249,10 @@ namespace PackageManagement.Tests
[Test]
public void IsPackageInstalled_PackageIsNotInstalledInProjectAndProjectSelected_ReturnsFalse()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
CreateSelectedProjects();
var package = new FakePackage("Test");
bool installed = selectedProjects.IsPackageInstalled(package);
@ -247,9 +263,10 @@ namespace PackageManagement.Tests @@ -247,9 +263,10 @@ namespace PackageManagement.Tests
[Test]
public void IsPackageInstalled_PackagePackageIsNotInstalledInProjectAndProjectSelected_ProjectCreatedUsingPackageRepository()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
CreateSelectedProjects();
var package = new FakePackage("Test");
bool installed = selectedProjects.IsPackageInstalled(package);
@ -263,12 +280,13 @@ namespace PackageManagement.Tests @@ -263,12 +280,13 @@ namespace PackageManagement.Tests
[Test]
public void IsPackageInstalledInSolution_PackageInstalledInSolutionWithTwoProjectsAndOneProjectSelected_ReturnsTrue()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
var package = new FakePackage("Test");
fakeSolution.FakeInstalledPackages.Add(package);
CreateSelectedProjects();
bool installed = selectedProjects.IsPackageInstalledInSolution(package);
@ -278,9 +296,10 @@ namespace PackageManagement.Tests @@ -278,9 +296,10 @@ namespace PackageManagement.Tests
[Test]
public void IsPackageInstalledInSolution_PackageNotInstalledInSolutionWithTwoProjectsAndOneProjectSelected_ReturnsFalse()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
CreateSelectedProjects();
var package = new FakePackage("Test");
@ -292,12 +311,13 @@ namespace PackageManagement.Tests @@ -292,12 +311,13 @@ namespace PackageManagement.Tests
[Test]
public void GetPackagesInstalledInSolution_PackageInstalledInSolutionAndProjectNotSelected_ReturnsPackageInstalledInSolution()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
NoProjectsSelected();
var package = new FakePackage("Test");
fakeSolution.FakeInstalledPackages.Add(package);
CreateSelectedProjects();
IQueryable<IPackage> packages = selectedProjects.GetPackagesInstalledInSolution();
@ -311,9 +331,10 @@ namespace PackageManagement.Tests @@ -311,9 +331,10 @@ namespace PackageManagement.Tests
[Test]
public void GetSingleProjectSelected_ProjectSelected_ReturnsProject()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
CreateSelectedProjects();
var repository = new FakePackageRepository();
IPackageManagementProject project = selectedProjects.GetSingleProjectSelected(repository);
@ -326,9 +347,10 @@ namespace PackageManagement.Tests @@ -326,9 +347,10 @@ namespace PackageManagement.Tests
[Test]
public void GetSingleProjectSelected_ProjectSelectedAndRepositoryPassed_ReturnsProjectCreatedWithRepository()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
CreateSelectedProjects();
var repository = new FakePackageRepository();
IPackageManagementProject project = selectedProjects.GetSingleProjectSelected(repository);
@ -339,9 +361,10 @@ namespace PackageManagement.Tests @@ -339,9 +361,10 @@ namespace PackageManagement.Tests
[Test]
public void GetSingleProjectSelected_NoProjectSelectedAndRepositoryPassed_ReturnsProjectCreatedWithRepository()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
CreateSelectedProjects();
var repository = new FakePackageRepository();
IPackageManagementProject project = selectedProjects.GetSingleProjectSelected(repository);
@ -352,10 +375,11 @@ namespace PackageManagement.Tests @@ -352,10 +375,11 @@ namespace PackageManagement.Tests
[Test]
public void HasSingleProjectSelected_SolutionHasTwoProjectsAndOneProjectSelectedInProjectsBrowser_ReturnsTrue()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
IProject expectedProject = projectsAddedToSolution[1];
fakeSolution.FakeActiveMSBuildProject = expectedProject;
CreateSelectedProjects();
bool singleProjectSelected = selectedProjects.HasSingleProjectSelected();
@ -365,9 +389,10 @@ namespace PackageManagement.Tests @@ -365,9 +389,10 @@ namespace PackageManagement.Tests
[Test]
public void HasSingleProjectSelected_SolutionHasTwoProjectsAndNoProjectsSelectedInProjectsBrowser_ReturnsFalse()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
NoProjectsSelected();
CreateSelectedProjects();
bool singleProjectSelected = selectedProjects.HasSingleProjectSelected();
@ -377,9 +402,10 @@ namespace PackageManagement.Tests @@ -377,9 +402,10 @@ namespace PackageManagement.Tests
[Test]
public void HasSingleProjectSelected_NoProjectsInitiallySelectedAndProjectSelectedAfterInitialCall_IsUnchangedAndReturnsFalse()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
NoProjectsSelected();
CreateSelectedProjects();
bool singleProjectSelected = selectedProjects.HasSingleProjectSelected();
fakeSolution.FakeActiveMSBuildProject = fakeSolution.FakeMSBuildProjects[0];
@ -391,12 +417,13 @@ namespace PackageManagement.Tests @@ -391,12 +417,13 @@ namespace PackageManagement.Tests
[Test]
public void GetInstalledPackages_PackageInstalledInSolutionAndProjectNotSelected_ReturnsPackageInstalledInSolution()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
NoProjectsSelected();
var package = new FakePackage("Test");
fakeSolution.FakeInstalledPackages.Add(package);
CreateSelectedProjects();
var repository = new FakePackageRepository();
IQueryable<IPackage> packages = selectedProjects.GetInstalledPackages(repository);
@ -411,7 +438,7 @@ namespace PackageManagement.Tests @@ -411,7 +438,7 @@ namespace PackageManagement.Tests
[Test]
public void GetInstalledPackages_PackageInstalledInProjectAndProjectIsSelected_ReturnsPackageInstalledInProject()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
fakeSolution.FakeActiveMSBuildProject.Name = "MyProject";
@ -420,6 +447,7 @@ namespace PackageManagement.Tests @@ -420,6 +447,7 @@ namespace PackageManagement.Tests
var project = new FakePackageManagementProject("MyProject");
project.FakePackages.Add(package);
fakeSolution.FakeProjectsToReturnFromGetProject.Add("MyProject", project);
CreateSelectedProjects();
var repository = new FakePackageRepository();
IQueryable<IPackage> packages = selectedProjects.GetInstalledPackages(repository);
@ -434,9 +462,10 @@ namespace PackageManagement.Tests @@ -434,9 +462,10 @@ namespace PackageManagement.Tests
[Test]
public void GetInstalledPackages_PackageInstalledInProjectAndProjectIsSelected_CreatesProjectUsingRepository()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
fakeSolution.FakeActiveMSBuildProject = projectsAddedToSolution[0];
CreateSelectedProjects();
var expectedRepository = new FakePackageRepository();
IQueryable<IPackage> packages = selectedProjects.GetInstalledPackages(expectedRepository);
@ -449,14 +478,39 @@ namespace PackageManagement.Tests @@ -449,14 +478,39 @@ namespace PackageManagement.Tests
[Test]
public void GetSingleProjectSelected_NoProjectSelected_ReturnsNull()
{
CreateSelectedProjects();
CreateFakeSolution();
AddSolutionWithTwoProjectsToProjectService();
NoProjectsSelected();
CreateSelectedProjects();
var repository = new FakePackageRepository();
IPackageManagementProject project = selectedProjects.GetSingleProjectSelected(repository);
Assert.IsNull(project);
}
[Test]
public void GetProjects_SolutionHasTwoProjectsAndOneProjectSelectedInitiallyAndActiveProjectChangedInSolutionAfterInstanceCreated_ReturnsProjectSelectedInProjects()
{
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
IProject project = projectsAddedToSolution[1];
project.Name = "MyProject";
fakeSolution.FakeActiveMSBuildProject = project;
var fakeProject = fakeSolution.AddFakeProjectToReturnFromGetProject("MyProject");
CreateSelectedProjects();
NoProjectsSelected();
var fakePackage = new FakePackage();
var projects = new List<IPackageManagementSelectedProject>();
projects.AddRange(selectedProjects.GetProjects(fakePackage));
var expectedProject = new FakeSelectedProject("MyProject");
var expectedProjects = new List<IPackageManagementSelectedProject>();
expectedProjects.Add(expectedProject);
SelectedProjectCollectionAssert.AreEqual(expectedProjects, projects);
}
}
}

21
src/AddIns/Misc/PackageManagement/Test/Src/PackageViewModelTests.cs

@ -28,15 +28,22 @@ namespace PackageManagement.Tests @@ -28,15 +28,22 @@ namespace PackageManagement.Tests
FakePackageActionRunner fakeActionRunner;
List<FakeSelectedProject> fakeSelectedProjects;
void CreateViewModel()
void CreateFakeSolution()
{
fakeSolution = new FakePackageManagementSolution();
fakeSolution.FakeActiveMSBuildProject = ProjectHelper.CreateTestProject();
}
void CreateViewModel()
{
CreateFakeSolution();
CreateViewModel(fakeSolution);
}
void CreateViewModelWithExceptionThrowingSolution()
{
exceptionThrowingSolution = new ExceptionThrowingPackageManagementSolution();
exceptionThrowingSolution.FakeActiveMSBuildProject = ProjectHelper.CreateTestProject();
CreateViewModel(exceptionThrowingSolution);
}
@ -67,8 +74,9 @@ namespace PackageManagement.Tests @@ -67,8 +74,9 @@ namespace PackageManagement.Tests
void CreateViewModelWithTwoProjectsSelected(string projectName1, string projectName2)
{
CreateViewModel();
CreateFakeSolution();
AddTwoProjectsSelected(projectName1, projectName2);
CreateViewModel(fakeSolution);
}
void AddTwoProjectsSelected(string projectName1, string projectName2)
@ -707,10 +715,11 @@ namespace PackageManagement.Tests @@ -707,10 +715,11 @@ namespace PackageManagement.Tests
[Test]
public void IsAdded_SolutionSelectedContainingOneProjectAndPackageIsInstalledInSolutionSharedRepository_ReturnsTrue()
{
CreateViewModel();
CreateFakeSolution();
AddProjectToSolution();
fakeSolution.NoProjectsSelected();
fakeSolution.FakeInstalledPackages.Add(fakePackage);
CreateViewModel(fakeSolution);
bool added = viewModel.IsAdded;
@ -732,10 +741,11 @@ namespace PackageManagement.Tests @@ -732,10 +741,11 @@ namespace PackageManagement.Tests
[Test]
public void IsManaged_SolutionSelectedContainingTwoProjects_ReturnsTrue()
{
CreateViewModel();
CreateFakeSolution();
AddProjectToSolution();
AddProjectToSolution();
fakeSolution.NoProjectsSelected();
CreateViewModel(fakeSolution);
bool managed = viewModel.IsManaged;
@ -745,9 +755,10 @@ namespace PackageManagement.Tests @@ -745,9 +755,10 @@ namespace PackageManagement.Tests
[Test]
public void IsManaged_SolutionWithOneProjectSelected_ReturnsFalse()
{
CreateViewModel();
CreateFakeSolution();
AddProjectToSolution();
fakeSolution.FakeActiveMSBuildProject = fakeSolution.FakeMSBuildProjects[0];
CreateViewModel(fakeSolution);
bool managed = viewModel.IsManaged;

14
src/AddIns/Misc/PackageManagement/Test/Src/SelectedProjectsForInstalledPackagesTests.cs

@ -16,10 +16,14 @@ namespace PackageManagement.Tests @@ -16,10 +16,14 @@ namespace PackageManagement.Tests
{
SelectedProjectsForInstalledPackages selectedProjects;
FakePackageManagementSolution fakeSolution;
void CreateFakeSolution()
{
fakeSolution = new FakePackageManagementSolution();
}
void CreateSelectedProjects()
{
fakeSolution = new FakePackageManagementSolution();
selectedProjects = new SelectedProjectsForInstalledPackages(fakeSolution);
}
@ -40,7 +44,7 @@ namespace PackageManagement.Tests @@ -40,7 +44,7 @@ namespace PackageManagement.Tests
[Test]
public void GetProjects_SolutionHasTwoProjectsAndOneProjectSelectedInProjectsBrowserAndPackageIsInstalledInProject_ReturnsProjectAndIsSelectedIsTrue()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
projectsAddedToSolution[0].Name = "Aaa";
IProject msbuildProject = projectsAddedToSolution[1];
@ -52,6 +56,8 @@ namespace PackageManagement.Tests @@ -52,6 +56,8 @@ namespace PackageManagement.Tests
fakeProject.FakePackages.Add(fakePackage);
fakeSolution.AddFakeProjectToReturnFromGetProject("Aaa");
CreateSelectedProjects();
var projects = new List<IPackageManagementSelectedProject>();
projects.AddRange(selectedProjects.GetProjects(fakePackage));
@ -67,7 +73,7 @@ namespace PackageManagement.Tests @@ -67,7 +73,7 @@ namespace PackageManagement.Tests
[Test]
public void GetProjects_SolutionHasTwoProjectsAndNoProjectSelectedInProjectsBrowserAndPackageIsInstalledInFirstProject_ReturnsAllProjectsInSolutionWithIsSelectedIsTrue()
{
CreateSelectedProjects();
CreateFakeSolution();
List<IProject> projectsAddedToSolution = AddSolutionWithTwoProjectsToProjectService();
projectsAddedToSolution[0].Name = "Project A";
projectsAddedToSolution[1].Name = "Project B";
@ -78,6 +84,8 @@ namespace PackageManagement.Tests @@ -78,6 +84,8 @@ namespace PackageManagement.Tests
fakeProject.FakePackages.Add(fakePackage);
fakeSolution.AddFakeProjectToReturnFromGetProject("Project B");
CreateSelectedProjects();
var projects = new List<IPackageManagementSelectedProject>();
projects.AddRange(selectedProjects.GetProjects(fakePackage));

19
src/AddIns/Misc/PackageManagement/Test/Src/UpdatedPackageViewModelTests.cs

@ -24,14 +24,25 @@ namespace PackageManagement.Tests @@ -24,14 +24,25 @@ namespace PackageManagement.Tests
void CreateViewModel()
{
viewModel = new TestableUpdatedPackageViewModel();
fakeSolution = viewModel.FakeSolution;
CreateFakeSolution();
CreateViewModel(fakeSolution);
}
void CreateViewModel(FakePackageManagementSolution fakeSolution)
{
viewModel = new TestableUpdatedPackageViewModel(fakeSolution);
fakeProject = fakeSolution.FakeProjectToReturnFromGetProject;
updatePackageAction = fakeProject.FakeUpdatePackageAction;
fakeActionRunner = viewModel.FakeActionRunner;
fakePackageManagementEvents = viewModel.FakePackageManagementEvents;
}
void CreateFakeSolution()
{
fakeSolution = new FakePackageManagementSolution();
fakeSolution.FakeActiveMSBuildProject = ProjectHelper.CreateTestProject("MyProject");
}
void AddProjectToSolution()
{
TestableProject project = ProjectHelper.CreateTestProject();
@ -40,7 +51,7 @@ namespace PackageManagement.Tests @@ -40,7 +51,7 @@ namespace PackageManagement.Tests
void CreateViewModelWithTwoProjectsSelected(string projectName1, string projectName2)
{
CreateViewModel();
CreateFakeSolution();
AddProjectToSolution();
AddProjectToSolution();
fakeSolution.FakeMSBuildProjects[0].Name = projectName1;
@ -49,6 +60,8 @@ namespace PackageManagement.Tests @@ -49,6 +60,8 @@ namespace PackageManagement.Tests
fakeSolution.AddFakeProjectToReturnFromGetProject(projectName1);
fakeSolution.AddFakeProjectToReturnFromGetProject(projectName2);
CreateViewModel(fakeSolution);
}
[Test]

Loading…
Cancel
Save