Browse Source

Show NuGet console when running PowerShell scripts from Manage Packages dialog.

pull/44/head
Matt Ward 12 years ago
parent
commit
25a316f1d5
  1. 6
      src/AddIns/Misc/PackageManagement/Project/Src/ConsolePackageActionRunner.cs
  2. 2
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementWorkbench.cs
  3. 14
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementWorkbench.cs
  4. 48
      src/AddIns/Misc/PackageManagement/Test/Src/ConsolePackageActionRunnerTests.cs
  5. 7
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementWorkbench.cs

6
src/AddIns/Misc/PackageManagement/Project/Src/ConsolePackageActionRunner.cs

@ -40,6 +40,7 @@ namespace ICSharpCode.PackageManagement @@ -40,6 +40,7 @@ namespace ICSharpCode.PackageManagement
public void Run(IEnumerable<IPackageAction> actions)
{
CreateConsolePadIfConsoleHostIsNotRunning();
ShowConsolePad();
AddNewActionsToRun(actions);
InvokeProcessPackageActionsCmdlet();
}
@ -51,6 +52,11 @@ namespace ICSharpCode.PackageManagement @@ -51,6 +52,11 @@ namespace ICSharpCode.PackageManagement
}
}
void ShowConsolePad()
{
workbench.ShowConsolePad();
}
void AddNewActionsToRun(IEnumerable<IPackageAction> actions)
{
foreach (IPackageAction action in actions) {

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

@ -12,6 +12,8 @@ namespace ICSharpCode.PackageManagement @@ -12,6 +12,8 @@ namespace ICSharpCode.PackageManagement
void SafeThreadAsyncCall<A>(Action<A> method, A arg1);
void SafeThreadAsyncCall<A, B>(Action<A, B> method, A arg1, B arg2);
R SafeThreadFunction<R>(Func<R> method);
void CreateConsolePad();
void ShowConsolePad();
}
}

14
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementWorkbench.cs

@ -12,17 +12,27 @@ namespace ICSharpCode.PackageManagement @@ -12,17 +12,27 @@ namespace ICSharpCode.PackageManagement
{
public void CreateConsolePad()
{
PadDescriptor pad = WorkbenchSingleton.Workbench.GetPad(typeof(PackageManagementConsolePad));
pad.BringPadToFront();
PadDescriptor pad = GetConsolePad();
EnsurePackageManagementConsoleViewModelIsCreated(pad);
}
PadDescriptor GetConsolePad()
{
return WorkbenchSingleton.Workbench.GetPad(typeof(PackageManagementConsolePad));
}
void EnsurePackageManagementConsoleViewModelIsCreated(PadDescriptor pad)
{
// Force creation of view model.
object control = pad.PadContent.Control;
}
public void ShowConsolePad()
{
PadDescriptor pad = GetConsolePad();
pad.BringPadToFront();
}
public bool InvokeRequired {
get { return WorkbenchSingleton.InvokeRequired; }
}

48
src/AddIns/Misc/PackageManagement/Test/Src/ConsolePackageActionRunnerTests.cs

@ -132,6 +132,18 @@ namespace PackageManagement.Tests @@ -132,6 +132,18 @@ namespace PackageManagement.Tests
Assert.IsTrue(created);
}
[Test]
public void Run_ConsoleHostIsNotRunning_ConsolePadIsBroughtToFront()
{
CreateRunner();
ConsoleHostIsNotRunning();
RunInstallActionWithOneOperation();
bool shown = fakeWorkbench.IsShowConsolePadCalled;
Assert.IsTrue(shown);
}
[Test]
public void Run_ConsoleHostIsRunning_ConsolePadIsNotCreated()
{
@ -144,6 +156,18 @@ namespace PackageManagement.Tests @@ -144,6 +156,18 @@ namespace PackageManagement.Tests
Assert.IsFalse(created);
}
[Test]
public void Run_ConsoleHostIsRunning_ConsolePadIsBroughtToFront()
{
CreateRunner();
ConsoleHostIsRunning();
RunInstallActionWithOneOperation();
bool shown = fakeWorkbench.IsShowConsolePadCalled;
Assert.IsTrue(shown);
}
[Test]
public void Run_TwoActionsToRunAndConsoleHostIsNotRunning_ConsolePadIsCreated()
{
@ -156,6 +180,18 @@ namespace PackageManagement.Tests @@ -156,6 +180,18 @@ namespace PackageManagement.Tests
Assert.IsTrue(created);
}
[Test]
public void Run_TwoActionsToRunAndConsoleHostIsNotRunning_ConsolePadIsBroughtToFront()
{
CreateRunner();
ConsoleHostIsNotRunning();
RunTwoInstallActionsWithOneOperation();
bool shown = fakeWorkbench.IsShowConsolePadCalled;
Assert.IsTrue(shown);
}
[Test]
public void Run_TwoActionsToRunAndConsoleHostIsRunning_ConsolePadIsNotCreated()
{
@ -168,6 +204,18 @@ namespace PackageManagement.Tests @@ -168,6 +204,18 @@ namespace PackageManagement.Tests
Assert.IsFalse(created);
}
[Test]
public void Run_TwoActionsToRunAndConsoleHostIsRunning_ConsolePadIsBroughtToFront()
{
CreateRunner();
ConsoleHostIsRunning();
RunTwoInstallActionsWithOneOperation();
bool shown = fakeWorkbench.IsShowConsolePadCalled;
Assert.IsTrue(shown);
}
[Test]
public void Run_TwoActionsToRunAndConsoleHostIsRunning_CommandPassedToConsoleHostToProcessPackageActions()
{

7
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementWorkbench.cs

@ -15,6 +15,13 @@ namespace PackageManagement.Tests.Helpers @@ -15,6 +15,13 @@ namespace PackageManagement.Tests.Helpers
IsCreateConsolePadCalled = true;
}
public bool IsShowConsolePadCalled;
public void ShowConsolePad()
{
IsShowConsolePadCalled = true;
}
public bool InvokeRequiredReturnValue;
public bool InvokeRequired {

Loading…
Cancel
Save