From 6091f9a250cb4c30188a506de9569df88d62535a Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Mon, 9 May 2011 21:26:36 +0100 Subject: [PATCH] Remove dependency on project service from package management console host. --- .../Cmdlets/Project/Src/GetProjectCmdlet.cs | 4 +- .../Cmdlets/Project/Src/OpenProjects.cs | 8 +-- .../Test/Helpers/TestableGetProjectCmdlet.cs | 3 ++ .../Cmdlets/Test/Src/GetProjectCmdletTests.cs | 52 ++++++++++++------- .../Design/FakePackageManagementSolution.cs | 7 +++ .../Project/Src/IPackageManagementSolution.cs | 1 + .../Project/Src/PackageManagementSolution.cs | 5 ++ .../Src/PackageManagementViewModels.cs | 1 + .../IPackageManagementConsoleHost.cs | 4 +- .../Scripting/PackageManagementConsoleHost.cs | 21 ++------ .../PackageManagementConsoleViewModel.cs | 3 +- .../FakePackageManagementConsoleHost.cs | 26 +++------- .../TestablePackageManagementConsoleHost.cs | 6 +-- ...stablePackageManagementConsoleViewModel.cs | 17 ++++-- .../Src/PackageManagementSolutionTests.cs | 13 +++++ .../PackageManagementConsoleHostTests.cs | 22 -------- .../PackageManagementConsoleViewModelTests.cs | 32 +++++++----- 17 files changed, 116 insertions(+), 109 deletions(-) diff --git a/src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/GetProjectCmdlet.cs b/src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/GetProjectCmdlet.cs index 90a98f18b9..0e7ddd73ea 100644 --- a/src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/GetProjectCmdlet.cs +++ b/src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/GetProjectCmdlet.cs @@ -56,7 +56,7 @@ namespace ICSharpCode.PackageManagement.Cmdlets IEnumerable GetAllProjects() { - var projects = new OpenProjects(ConsoleHost); + var projects = new OpenProjects(ConsoleHost.Solution); return projects.GetAllProjects(); } @@ -74,7 +74,7 @@ namespace ICSharpCode.PackageManagement.Cmdlets IEnumerable GetFilteredProjects() { - var projects = new OpenProjects(ConsoleHost); + var projects = new OpenProjects(ConsoleHost.Solution); return projects.GetFilteredProjects(Name); } diff --git a/src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/OpenProjects.cs b/src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/OpenProjects.cs index f3a7ec0464..d7097e3770 100644 --- a/src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/OpenProjects.cs +++ b/src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/OpenProjects.cs @@ -13,16 +13,16 @@ namespace ICSharpCode.PackageManagement.Cmdlets { public class OpenProjects { - IPackageManagementConsoleHost consoleHost; + IPackageManagementSolution solution; - public OpenProjects(IPackageManagementConsoleHost consoleHost) + public OpenProjects(IPackageManagementSolution solution) { - this.consoleHost = consoleHost; + this.solution = solution; } public IEnumerable GetAllProjects() { - foreach (IProject project in consoleHost.GetOpenProjects()) { + foreach (IProject project in solution.GetMSBuildProjects()) { yield return CreateProject(project); } } diff --git a/src/AddIns/Misc/PackageManagement/Cmdlets/Test/Helpers/TestableGetProjectCmdlet.cs b/src/AddIns/Misc/PackageManagement/Cmdlets/Test/Helpers/TestableGetProjectCmdlet.cs index 859059d5ff..979273156b 100644 --- a/src/AddIns/Misc/PackageManagement/Cmdlets/Test/Helpers/TestableGetProjectCmdlet.cs +++ b/src/AddIns/Misc/PackageManagement/Cmdlets/Test/Helpers/TestableGetProjectCmdlet.cs @@ -3,6 +3,7 @@ using System; using ICSharpCode.PackageManagement.Cmdlets; +using ICSharpCode.PackageManagement.Design; using PackageManagement.Tests.Helpers; namespace PackageManagement.Cmdlets.Tests.Helpers @@ -12,6 +13,7 @@ namespace PackageManagement.Cmdlets.Tests.Helpers public FakeCmdletTerminatingError FakeCmdletTerminatingError; public FakePackageManagementConsoleHost FakePackageManagementConsoleHost; public FakeCommandRuntime FakeCommandRuntime; + public FakePackageManagementSolution FakeSolution; public TestableGetProjectCmdlet() : this( @@ -31,6 +33,7 @@ namespace PackageManagement.Cmdlets.Tests.Helpers this.FakeCommandRuntime = commandRuntime; this.CommandRuntime = commandRuntime; this.FakeCmdletTerminatingError = cmdletTerminatingError; + this.FakeSolution = consoleHost.FakeSolution; } public void CallProcessRecord() diff --git a/src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/GetProjectCmdletTests.cs b/src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/GetProjectCmdletTests.cs index f335a203cb..b67ee0caaf 100644 --- a/src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/GetProjectCmdletTests.cs +++ b/src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/GetProjectCmdletTests.cs @@ -4,7 +4,10 @@ using System; using System.Collections.Generic; using System.Management.Automation; + +using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.EnvDTE; +using ICSharpCode.SharpDevelop.Project; using NUnit.Framework; using PackageManagement.Cmdlets.Tests.Helpers; using PackageManagement.Tests.Helpers; @@ -18,6 +21,7 @@ namespace PackageManagement.Cmdlets.Tests FakeCmdletTerminatingError fakeTerminatingError; TestableProject defaultProject; FakeCommandRuntime fakeCommandRuntime; + FakePackageManagementSolution fakeSolution; void CreateCmdletWithoutActiveProject() { @@ -31,9 +35,17 @@ namespace PackageManagement.Cmdlets.Tests fakeTerminatingError = cmdlet.FakeCmdletTerminatingError; fakeCommandRuntime = cmdlet.FakeCommandRuntime; fakeConsoleHost = cmdlet.FakePackageManagementConsoleHost; + fakeSolution = cmdlet.FakeSolution; defaultProject = base.AddDefaultProjectToConsoleHost(); } + TestableProject AddFakeProject(string name) + { + var project = ProjectHelper.CreateTestProject(name); + fakeSolution.FakeMSBuildProjects.Add(project); + return project; + } + void RunCmdlet() { cmdlet.CallProcessRecord(); @@ -44,10 +56,10 @@ namespace PackageManagement.Cmdlets.Tests cmdlet.All = new SwitchParameter(true); } - void ProjectCollectionAssertAreEqual(IEnumerable expectedProjects, IEnumerable actualProjects) + void ProjectCollectionAssertAreEqual(IEnumerable expectedProjects, IEnumerable actualProjects) { var expectedProjectNames = new List(); - foreach (TestableProject testableProject in expectedProjects) { + foreach (IProject testableProject in expectedProjects) { expectedProjectNames.Add(testableProject.Name); } @@ -87,12 +99,12 @@ namespace PackageManagement.Cmdlets.Tests CreateCmdlet(); EnableAllParameter(); - fakeConsoleHost.AddFakeProject("A"); - fakeConsoleHost.AddFakeProject("B"); + AddFakeProject("A"); + AddFakeProject("B"); RunCmdlet(); - var expectedProjects = fakeConsoleHost.FakeOpenProjects; + var expectedProjects = fakeSolution.FakeMSBuildProjects; var projects = fakeCommandRuntime.FirstObjectPassedToWriteObject as IEnumerable; ProjectCollectionAssertAreEqual(expectedProjects, projects); @@ -104,8 +116,8 @@ namespace PackageManagement.Cmdlets.Tests CreateCmdlet(); EnableAllParameter(); - fakeConsoleHost.AddFakeProject("A"); - fakeConsoleHost.AddFakeProject("B"); + AddFakeProject("A"); + AddFakeProject("B"); RunCmdlet(); @@ -120,8 +132,8 @@ namespace PackageManagement.Cmdlets.Tests CreateCmdlet(); cmdlet.Name = new string[] { "B" }; - fakeConsoleHost.AddFakeProject("A"); - var projectB = fakeConsoleHost.AddFakeProject("B"); + AddFakeProject("A"); + var projectB = AddFakeProject("B"); RunCmdlet(); @@ -139,8 +151,8 @@ namespace PackageManagement.Cmdlets.Tests CreateCmdlet(); cmdlet.Name = new string[] { "b" }; - fakeConsoleHost.AddFakeProject("A"); - var projectB = fakeConsoleHost.AddFakeProject("B"); + AddFakeProject("A"); + var projectB = AddFakeProject("B"); RunCmdlet(); @@ -158,9 +170,9 @@ namespace PackageManagement.Cmdlets.Tests CreateCmdlet(); cmdlet.Name = new string[] { "B", "C" }; - fakeConsoleHost.AddFakeProject("A"); - var projectB = fakeConsoleHost.AddFakeProject("B"); - var projectC = fakeConsoleHost.AddFakeProject("C"); + AddFakeProject("A"); + var projectB = AddFakeProject("B"); + var projectC = AddFakeProject("C"); RunCmdlet(); @@ -179,9 +191,9 @@ namespace PackageManagement.Cmdlets.Tests CreateCmdlet(); cmdlet.Name = new string[] { "B", "C" }; - fakeConsoleHost.AddFakeProject("A"); - var projectB = fakeConsoleHost.AddFakeProject("B"); - var projectC = fakeConsoleHost.AddFakeProject("C"); + AddFakeProject("A"); + var projectB = AddFakeProject("B"); + var projectC = AddFakeProject("C"); RunCmdlet(); @@ -196,9 +208,9 @@ namespace PackageManagement.Cmdlets.Tests CreateCmdlet(); cmdlet.Name = new string[] { "B*", "C*" }; - fakeConsoleHost.AddFakeProject("A"); - var projectB = fakeConsoleHost.AddFakeProject("B"); - var projectC = fakeConsoleHost.AddFakeProject("C"); + AddFakeProject("A"); + var projectB = AddFakeProject("B"); + var projectC = AddFakeProject("C"); RunCmdlet(); diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementSolution.cs b/src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementSolution.cs index 0713f06e93..3452ca0b76 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementSolution.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementSolution.cs @@ -60,5 +60,12 @@ namespace ICSharpCode.PackageManagement.Design ProjectNamePassedToGetProject = projectName; return FakeProject; } + + public List FakeMSBuildProjects = new List(); + + public IEnumerable GetMSBuildProjects() + { + return FakeMSBuildProjects; + } } } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementSolution.cs b/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementSolution.cs index d98495082c..92db4256a7 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementSolution.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementSolution.cs @@ -14,5 +14,6 @@ namespace ICSharpCode.PackageManagement IPackageManagementProject GetActiveProject(IPackageRepository sourceRepository); IPackageManagementProject GetProject(PackageSource source, string projectName); IPackageManagementProject GetProject(IPackageRepository sourceRepository, string projectName); + IEnumerable GetMSBuildProjects(); } } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSolution.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSolution.cs index 80d438d80a..85052dd402 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSolution.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSolution.cs @@ -102,5 +102,10 @@ namespace ICSharpCode.PackageManagement MSBuildBasedProject msbuildProject = GetMSBuildProject(projectName); return CreateProject(sourceRepository, msbuildProject); } + + public IEnumerable GetMSBuildProjects() + { + return projectService.GetOpenProjects(); + } } } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementViewModels.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementViewModels.cs index 5247c9f940..ab57b908b0 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementViewModels.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementViewModels.cs @@ -110,6 +110,7 @@ namespace ICSharpCode.PackageManagement packageManagementConsoleViewModel = new PackageManagementConsoleViewModel( registeredPackageRepositories.PackageSources, + PackageManagementServices.ProjectService, consoleHost); } } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageManagementConsoleHost.cs b/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageManagementConsoleHost.cs index 2be4caf2da..e255084474 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageManagementConsoleHost.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageManagementConsoleHost.cs @@ -15,9 +15,7 @@ namespace ICSharpCode.PackageManagement.Scripting IProject DefaultProject { get; set; } PackageSource ActivePackageSource { get; set; } IScriptingConsole ScriptingConsole { get; set; } - IPackageManagementProjectService ProjectService { get; } - - IEnumerable GetOpenProjects(); + IPackageManagementSolution Solution { get; } void Clear(); void Run(); diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleHost.cs b/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleHost.cs index 53352a03b8..c6528193f7 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleHost.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleHost.cs @@ -15,10 +15,8 @@ namespace ICSharpCode.PackageManagement.Scripting public class PackageManagementConsoleHost : IPackageManagementConsoleHost { IThread thread; - IPackageManagementSolution solution; IRegisteredPackageRepositories registeredRepositories; IPowerShellHostFactory powerShellHostFactory; - IPackageManagementProjectService projectService; IPowerShellHost powerShellHost; IPackageManagementAddInPath addinPath; int autoIndentSize = 0; @@ -28,13 +26,11 @@ namespace ICSharpCode.PackageManagement.Scripting IPackageManagementSolution solution, IRegisteredPackageRepositories registeredRepositories, IPowerShellHostFactory powerShellHostFactory, - IPackageManagementProjectService projectService, IPackageManagementAddInPath addinPath) { - this.solution = solution; + this.Solution = solution; this.registeredRepositories = registeredRepositories; this.powerShellHostFactory = powerShellHostFactory; - this.projectService = projectService; this.addinPath = addinPath; } @@ -45,7 +41,6 @@ namespace ICSharpCode.PackageManagement.Scripting solution, registeredRepositories, new PowerShellHostFactory(), - new PackageManagementProjectService(), new PackageManagementAddInPath()) { } @@ -58,10 +53,7 @@ namespace ICSharpCode.PackageManagement.Scripting } public IScriptingConsole ScriptingConsole { get; set; } - - public IPackageManagementProjectService ProjectService { - get { return projectService; } - } + public IPackageManagementSolution Solution { get; private set; } public void Dispose() { @@ -185,7 +177,7 @@ namespace ICSharpCode.PackageManagement.Scripting PackageSource source = GetActivePackageSource(packageSource); projectName = GetActiveProjectName(projectName); - return solution.GetProject(source, projectName); + return Solution.GetProject(source, projectName); } public PackageSource GetActivePackageSource(string source) @@ -207,12 +199,7 @@ namespace ICSharpCode.PackageManagement.Scripting public IPackageManagementProject GetProject(IPackageRepository sourceRepository, string projectName) { projectName = GetActiveProjectName(projectName); - return solution.GetProject(sourceRepository, projectName); - } - - public IEnumerable GetOpenProjects() - { - return projectService.GetOpenProjects(); + return Solution.GetProject(sourceRepository, projectName); } } } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleViewModel.cs b/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleViewModel.cs index de0ffa6f15..d7ff5a6e91 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleViewModel.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleViewModel.cs @@ -32,10 +32,11 @@ namespace ICSharpCode.PackageManagement.Scripting public PackageManagementConsoleViewModel( RegisteredPackageSources registeredPackageSources, + IPackageManagementProjectService projectService, IPackageManagementConsoleHost consoleHost) { this.registeredPackageSources = registeredPackageSources; - this.projectService = consoleHost.ProjectService; + this.projectService = projectService; this.consoleHost = consoleHost; Init(); diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementConsoleHost.cs b/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementConsoleHost.cs index 165cd7ca79..74608a691b 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementConsoleHost.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementConsoleHost.cs @@ -19,6 +19,12 @@ namespace PackageManagement.Tests.Helpers public PackageSource ActivePackageSource { get; set; } public IScriptingConsole ScriptingConsole { get; set; } + public IPackageManagementSolution Solution { + get { return FakeSolution; } + } + + public FakePackageManagementSolution FakeSolution = new FakePackageManagementSolution(); + public bool IsDisposeCalled; public bool IsClearCalled; public bool IsRunCalled; @@ -53,11 +59,7 @@ namespace PackageManagement.Tests.Helpers } public FakePackageManagementProjectService FakeProjectService = new FakePackageManagementProjectService(); - - public IPackageManagementProjectService ProjectService { - get { return FakeProjectService; } - } - + public string PackageSourcePassedToGetProject; public string ProjectNamePassedToGetProject; public FakePackageManagementProject FakeProject = new FakePackageManagementProject(); @@ -86,19 +88,5 @@ namespace PackageManagement.Tests.Helpers PackageSourcePassedToGetActivePackageSource = source; return PackageSourceToReturnFromGetActivePackageSource; } - - public List FakeOpenProjects = new List(); - - public TestableProject AddFakeProject(string name) - { - var project = ProjectHelper.CreateTestProject(name); - FakeOpenProjects.Add(project); - return project; - } - - public IEnumerable GetOpenProjects() - { - return FakeOpenProjects; - } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageManagementConsoleHost.cs b/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageManagementConsoleHost.cs index 9a2b4a47fe..bae9495fef 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageManagementConsoleHost.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageManagementConsoleHost.cs @@ -16,7 +16,6 @@ namespace PackageManagement.Tests.Helpers public ThreadStart ThreadStartPassedToCreateThread; public FakePowerShellHostFactory FakePowerShellHostFactory; public FakePackageManagementAddInPath FakePackageManagementAddInPath; - public FakePackageManagementProjectService FakeProjectService; public FakePackageManagementSolution FakeSolution; public FakeRegisteredPackageRepositories FakeRegisteredPackageRepositories; @@ -26,7 +25,6 @@ namespace PackageManagement.Tests.Helpers new FakeRegisteredPackageRepositories(), new FakeScriptingConsoleWithLinesToRead(), new FakePowerShellHostFactory(), - new FakePackageManagementProjectService(), new FakePackageManagementAddInPath()) { } @@ -36,15 +34,13 @@ namespace PackageManagement.Tests.Helpers FakeRegisteredPackageRepositories registeredPackageRepositories, FakeScriptingConsoleWithLinesToRead scriptingConsole, FakePowerShellHostFactory powerShellHostFactory, - FakePackageManagementProjectService projectService, FakePackageManagementAddInPath addinPath) - : base(solution, registeredPackageRepositories, powerShellHostFactory, projectService, addinPath) + : base(solution, registeredPackageRepositories, powerShellHostFactory, addinPath) { this.FakeSolution = solution; this.FakeScriptingConsole = scriptingConsole; this.ScriptingConsole = scriptingConsole; this.FakePowerShellHostFactory = powerShellHostFactory; - this.FakeProjectService = projectService; this.FakeRegisteredPackageRepositories = registeredPackageRepositories; this.FakePackageManagementAddInPath = addinPath; } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageManagementConsoleViewModel.cs b/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageManagementConsoleViewModel.cs index 476af9fee9..496675e34b 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageManagementConsoleViewModel.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestablePackageManagementConsoleViewModel.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using ICSharpCode.PackageManagement; +using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.Scripting; using ICSharpCode.Scripting; using ICSharpCode.Scripting.Tests.Utils; @@ -17,6 +18,7 @@ namespace PackageManagement.Tests.Helpers new PackageManagementConsole(new FakeScriptingConsole(), new FakeControlDispatcher()); public RegisteredPackageSources RegisteredPackageSources; + public FakePackageManagementProjectService FakeProjectService; public TestablePackageManagementConsoleViewModel(IPackageManagementConsoleHost consoleHost) : this(new RegisteredPackageSources(new PackageSource[0]), consoleHost) @@ -26,16 +28,25 @@ namespace PackageManagement.Tests.Helpers public TestablePackageManagementConsoleViewModel( IEnumerable packageSources, IPackageManagementConsoleHost consoleHost) - : this(new RegisteredPackageSources(packageSources), consoleHost) + : this(new RegisteredPackageSources(packageSources), consoleHost, new FakePackageManagementProjectService()) + { + } + + public TestablePackageManagementConsoleViewModel( + IPackageManagementConsoleHost consoleHost, + FakePackageManagementProjectService projectService) + : this(new RegisteredPackageSources(new PackageSource[0]), consoleHost, projectService) { } public TestablePackageManagementConsoleViewModel( RegisteredPackageSources registeredPackageSources, - IPackageManagementConsoleHost consoleHost) - : base(registeredPackageSources, consoleHost) + IPackageManagementConsoleHost consoleHost, + FakePackageManagementProjectService projectService) + : base(registeredPackageSources, projectService, consoleHost) { this.RegisteredPackageSources = registeredPackageSources; + this.FakeProjectService = projectService; } protected override PackageManagementConsole CreateConsole() diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementSolutionTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementSolutionTests.cs index a5a77ae5c5..06e606f1b2 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementSolutionTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementSolutionTests.cs @@ -242,5 +242,18 @@ namespace PackageManagement.Tests Assert.AreEqual(expectedRepository, actualRepository); } + + [Test] + public void GetMSBuildProjects_TwoProjectsInOpenSolution_ReturnsTwoProjects() + { + CreateSolution(); + AddProjectToOpenProjects("A"); + AddProjectToOpenProjects("B"); + + var projects = solution.GetMSBuildProjects(); + var expectedProjects = fakeProjectService.FakeOpenProjects; + + CollectionAssert.AreEqual(expectedProjects, projects); + } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleHostTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleHostTests.cs index c3b8325fb8..98f211f67f 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleHostTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleHostTests.cs @@ -19,7 +19,6 @@ namespace PackageManagement.Tests.Scripting FakeScriptingConsoleWithLinesToRead scriptingConsole; FakePowerShellHost powerShellHost; FakePackageManagementSolution fakeSolution; - FakePackageManagementProjectService fakeProjectService; FakeRegisteredPackageRepositories fakeRegisteredPackageRepositories; void CreateHost() @@ -28,7 +27,6 @@ namespace PackageManagement.Tests.Scripting fakeSolution = host.FakeSolution; scriptingConsole = host.FakeScriptingConsole; powerShellHost = host.FakePowerShellHostFactory.FakePowerShellHost; - fakeProjectService = host.FakeProjectService; fakeRegisteredPackageRepositories = host.FakeRegisteredPackageRepositories; } @@ -38,13 +36,6 @@ namespace PackageManagement.Tests.Scripting host.ThreadStartPassedToCreateThread.Invoke(); } - TestableProject AddProject(string name) - { - var project = ProjectHelper.CreateTestProject(name); - fakeProjectService.AddFakeProject(project); - return project; - } - [Test] public void Dispose_ScriptingConsoleIsNotNull_ScriptingConsoleIsDisposed() { @@ -380,19 +371,6 @@ namespace PackageManagement.Tests.Scripting Assert.AreEqual("MyProject", projectName); } - [Test] - public void GetOpenProjects_TwoProjectsInOpenSolution_ReturnsTwoProjects() - { - CreateHost(); - fakeProjectService.AddFakeProject(ProjectHelper.CreateTestProject("A")); - fakeProjectService.AddFakeProject(ProjectHelper.CreateTestProject("B")); - - var projects = host.GetOpenProjects(); - var expectedProjects = fakeProjectService.FakeOpenProjects; - - CollectionAssert.AreEqual(expectedProjects, projects); - } - [Test] public void ActivePackageSource_ConsoleHostCreated_ReturnsRegisteredPackageSourcesActivePackageSource() { diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleViewModelTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleViewModelTests.cs index 56597eb767..ae810f4dd5 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleViewModelTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleViewModelTests.cs @@ -25,7 +25,6 @@ namespace PackageManagement.Tests.Scripting void CreateConsoleHost() { consoleHost = new FakePackageManagementConsoleHost(); - projectService = consoleHost.FakeProjectService; } void CreateViewModel() @@ -37,11 +36,18 @@ namespace PackageManagement.Tests.Scripting void CreateViewModel(IPackageManagementConsoleHost consoleHost) { viewModel = new TestablePackageManagementConsoleViewModel(consoleHost); + projectService = viewModel.FakeProjectService; } void CreateViewModel(IEnumerable packageSources, IPackageManagementConsoleHost consoleHost) { viewModel = new TestablePackageManagementConsoleViewModel(packageSources, consoleHost); + projectService = viewModel.FakeProjectService; + } + + void CreateViewModel(IPackageManagementConsoleHost consoleHost, FakePackageManagementProjectService projectService) + { + viewModel = new TestablePackageManagementConsoleViewModel(consoleHost, projectService); } void CreateViewModelWithOneRegisteredPackageSource() @@ -80,8 +86,9 @@ namespace PackageManagement.Tests.Scripting { CreateConsoleHost(); Solution solution = CreateSolutionWithOneProject(); + projectService = new FakePackageManagementProjectService(); projectService.OpenSolution = solution; - CreateViewModel(consoleHost); + CreateViewModel(consoleHost, projectService); return solution; } @@ -126,18 +133,13 @@ namespace PackageManagement.Tests.Scripting viewModel.PropertyChanged += (sender, e) => propertiesChanged.Add(e.PropertyName); } - Solution CreateConsoleHostWithEmptySolutionOpen() + Solution CreateViewModelWithEmptySolutionOpen() { CreateConsoleHost(); var solution = new Solution(); + projectService = new FakePackageManagementProjectService(); projectService.OpenSolution = solution; - return solution; - } - - Solution CreateViewModelWithEmptySolutionOpen() - { - var solution = CreateConsoleHostWithEmptySolutionOpen(); - CreateViewModel(consoleHost); + CreateViewModel(consoleHost, projectService); return solution; } @@ -293,10 +295,14 @@ namespace PackageManagement.Tests.Scripting } [Test] - public void Constructor_EmptySolutionOpenWhenConsoleCreated_DoesNotThrowException() + public void Constructor_EmptySolutionOpenWhenConsoleViewModelCreated_DoesNotThrowException() { - CreateConsoleHostWithEmptySolutionOpen(); - Assert.DoesNotThrow(() => CreateViewModel(consoleHost)); + CreateConsoleHost(); + projectService = new FakePackageManagementProjectService(); + var solution = new Solution(); + projectService.OpenSolution = solution; + + Assert.DoesNotThrow(() => CreateViewModel(consoleHost, projectService)); } [Test]