Browse Source

Fix exception when clicking Manage button.

Ignore non-MSBuild based projects when the Manage button is
clicked in the Manage Packages dialog.
4.x
Matt Ward 12 years ago
parent
commit
1456608ef7
  1. 2
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSolution.cs
  2. 21
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementSolutionTests.cs

2
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSolution.cs

@ -126,7 +126,7 @@ namespace ICSharpCode.PackageManagement @@ -126,7 +126,7 @@ namespace ICSharpCode.PackageManagement
public IEnumerable<IProject> GetMSBuildProjects()
{
return projectService.GetOpenProjects();
return projectService.GetOpenProjects().OfType<MSBuildBasedProject>();
}
public bool IsOpen {

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

@ -4,13 +4,13 @@ @@ -4,13 +4,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using ICSharpCode.SharpDevelop.Project;
using NuGet;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
using Rhino.Mocks;
namespace PackageManagement.Tests
{
@ -72,6 +72,12 @@ namespace PackageManagement.Tests @@ -72,6 +72,12 @@ namespace PackageManagement.Tests
return package;
}
void AddNonMSBuildBasedProjectToOpenProjects()
{
IProject project = MockRepository.GenerateStub<IProject>();
fakeProjectService.FakeOpenProjects.Add(project);
}
[Test]
public void GetActiveProject_ProjectIsSelected_CreatesProjectUsingCurrentProjectSelectedInSharpDevelop()
{
@ -597,5 +603,18 @@ namespace PackageManagement.Tests @@ -597,5 +603,18 @@ namespace PackageManagement.Tests
Assert.AreEqual(fakeRegisteredPackageRepositories.ActiveRepository, fakeProjectFactory.RepositoriesPassedToCreateProject[0]);
Assert.AreEqual(fakeRegisteredPackageRepositories.ActiveRepository, fakeProjectFactory.RepositoriesPassedToCreateProject[1]);
}
[Test]
public void GetMSBuildProjects_TwoProjectsInOpenSolutionButOneIsNotMSBuildBased_ReturnsOneMSBuildBasedProject()
{
CreateSolution();
TestableProject project = AddProjectToOpenProjects("A");
AddNonMSBuildBasedProjectToOpenProjects();
IEnumerable<IProject> projects = solution.GetMSBuildProjects();
var expectedProjects = new IProject[] { project };
CollectionAssert.AreEqual(expectedProjects, projects);
}
}
}

Loading…
Cancel
Save