Browse Source

Execute commands using the console host instead of directly accessing the scripting console.

pull/15/head
Matt Ward 14 years ago
parent
commit
e0030363b0
  1. 2
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/ConsolePackageScriptRunner.cs
  2. 1
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageManagementConsoleHost.cs
  3. 4
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPowerShellHost.cs
  4. 2
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInitializationScriptsConsole.cs
  5. 5
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleHost.cs
  6. 25
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PowerShellHost.cs
  7. 2
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/ResetPowerShellWorkingDirectoryOnSolutionClosed.cs
  8. 15
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementConsoleHost.cs
  9. 6
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/ConsolePackageScriptRunnerTests.cs
  10. 4
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInitializationScriptsConsoleTests.cs
  11. 12
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleHostTests.cs
  12. 2
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/ResetPowerShellWorkingDirectoryOnSolutionClosedTests.cs
  13. 4
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/RunPackageInitializationScriptsOnSolutionOpenTests.cs

2
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/ConsolePackageScriptRunner.cs

@ -57,7 +57,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -57,7 +57,7 @@ namespace ICSharpCode.PackageManagement.Scripting
void InvokeRunPackageScriptsCmdlet()
{
string command = "Invoke-RunPackageScripts";
consoleHost.ScriptingConsole.SendLine(command);
consoleHost.ExecuteCommand(command);
}
}
}

1
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageManagementConsoleHost.cs

@ -22,6 +22,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -22,6 +22,7 @@ namespace ICSharpCode.PackageManagement.Scripting
void WritePrompt();
void Run();
void ShutdownConsole();
void ExecuteCommand(string command);
IPackageManagementProject GetProject(string packageSource, string projectName);
IPackageManagementProject GetProject(IPackageRepository sourceRepository, string projectName);

4
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPowerShellHost.cs

@ -14,9 +14,5 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -14,9 +14,5 @@ namespace ICSharpCode.PackageManagement.Scripting
void SetRemoteSignedExecutionPolicy();
void UpdateFormatting(IEnumerable<string> formattingFiles);
void ExecuteCommand(string command);
void SetEnvironmentPath(string path);
string GetEnvironmentPath();
void AddVariable(string name, object value);
void RemoveVariable(string name);
}
}

2
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInitializationScriptsConsole.cs

@ -18,7 +18,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -18,7 +18,7 @@ namespace ICSharpCode.PackageManagement.Scripting
public void ExecuteCommand(string command)
{
if (consoleHost.IsRunning) {
consoleHost.ScriptingConsole.SendLine(command);
consoleHost.ExecuteCommand(command);
}
}
}

5
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageManagementConsoleHost.cs

@ -233,5 +233,10 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -233,5 +233,10 @@ namespace ICSharpCode.PackageManagement.Scripting
ScriptingConsole.Dispose();
}
}
public void ExecuteCommand(string command)
{
ScriptingConsole.SendLine(command);
}
}
}

25
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PowerShellHost.cs

@ -170,30 +170,5 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -170,30 +170,5 @@ namespace ICSharpCode.PackageManagement.Scripting
consoleHost.ScriptingConsole.WriteLine(ex.Message, ScriptingStyle.Error);
}
}
public void SetEnvironmentPath(string path)
{
Environment.SetEnvironmentVariable(EnvironmentPathVariableName, path);
}
public string GetEnvironmentPath()
{
return Environment.GetEnvironmentVariable(EnvironmentPathVariableName);
}
public void AddVariable(string name, object value)
{
runspace.SessionStateProxy.SetVariable(name, value);
}
public void RemoveVariable(string name)
{
runspace.SessionStateProxy.PSVariable.Remove(name);
}
public void InvokeScript(string script)
{
consoleHost.ScriptingConsole.SendLine(script);
}
}
}

2
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/ResetPowerShellWorkingDirectoryOnSolutionClosed.cs

@ -27,7 +27,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -27,7 +27,7 @@ namespace ICSharpCode.PackageManagement.Scripting
void UpdateWorkingDirectory()
{
string command = "Invoke-UpdateWorkingDirectory";
consoleHost.ScriptingConsole.SendLine(command);
consoleHost.ExecuteCommand(command);
}
}
}

15
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementConsoleHost.cs

@ -103,5 +103,20 @@ namespace PackageManagement.Tests.Helpers @@ -103,5 +103,20 @@ namespace PackageManagement.Tests.Helpers
{
IsShutdownConsoleCalled = true;
}
public List<string> CommandsExecuted = new List<string>();
public string FirstCommandExecuted {
get { return CommandsExecuted[0]; }
}
public string LastCommandExecuted {
get { return CommandsExecuted[CommandsExecuted.Count - 1]; }
}
public void ExecuteCommand(string command)
{
CommandsExecuted.Add(command);
}
}
}

6
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/ConsolePackageScriptRunnerTests.cs

@ -95,7 +95,7 @@ namespace PackageManagement.Tests.Scripting @@ -95,7 +95,7 @@ namespace PackageManagement.Tests.Scripting
ConsoleHostIsRunning();
RunScriptThatExists();
string command = fakeScriptingConsole.TextPassedToSendLine;
string command = fakeConsoleHost.FirstCommandExecuted;
string expectedCommand = "Invoke-RunPackageScripts";
Assert.AreEqual(expectedCommand, command);
@ -108,9 +108,9 @@ namespace PackageManagement.Tests.Scripting @@ -108,9 +108,9 @@ namespace PackageManagement.Tests.Scripting
ConsoleHostIsRunning();
RunScriptThatDoesNotExist();
string command = fakeScriptingConsole.TextPassedToSendLine;
int count = fakeConsoleHost.CommandsExecuted.Count;
Assert.IsNull(command);
Assert.AreEqual(0, count);
}
[Test]

4
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInitializationScriptsConsoleTests.cs

@ -25,13 +25,13 @@ namespace PackageManagement.Tests.Scripting @@ -25,13 +25,13 @@ namespace PackageManagement.Tests.Scripting
}
[Test]
public void ExecuteCommand_ConsoleHostAlreadyRunning_CommandSentToScriptingConsole()
public void ExecuteCommand_ConsoleHostAlreadyRunning_CommandIsExecuted()
{
CreateConsole();
fakeConsoleHost.IsRunning = true;
console.ExecuteCommand("Test");
string command = fakeScriptingConsole.TextPassedToSendLine;
string command = fakeConsoleHost.FirstCommandExecuted;
Assert.AreEqual("Test", command);
}

12
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageManagementConsoleHostTests.cs

@ -545,5 +545,17 @@ namespace PackageManagement.Tests.Scripting @@ -545,5 +545,17 @@ namespace PackageManagement.Tests.Scripting
Assert.DoesNotThrow(() => host.ShutdownConsole());
}
[Test]
public void ExecuteCommand_ScriptingConsoleCreated_SendsCommandToScriptingConsole()
{
CreateHost();
host.ExecuteCommand("test");
string text = host.FakeScriptingConsole.TextPassedToSendLine;
string expectedText = "test";
Assert.AreEqual(expectedText, text);
}
}
}

2
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/ResetPowerShellWorkingDirectoryOnSolutionClosedTests.cs

@ -29,7 +29,7 @@ namespace PackageManagement.Tests.Scripting @@ -29,7 +29,7 @@ namespace PackageManagement.Tests.Scripting
bool IsWorkingDirectoryUpdated()
{
return fakeScriptingConsole.AllTextPassedToSendLine.Contains("Invoke-UpdateWorkingDirectory");
return fakeConsoleHost.CommandsExecuted.Contains("Invoke-UpdateWorkingDirectory");
}
[Test]

4
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/RunPackageInitializationScriptsOnSolutionOpenTests.cs

@ -69,7 +69,7 @@ namespace PackageManagement.Tests.Scripting @@ -69,7 +69,7 @@ namespace PackageManagement.Tests.Scripting
fakeConsoleHost.IsRunning = true;
OpenSolution();
string command = fakeScriptingConsole.LastLinePassedToSendLine;
string command = fakeConsoleHost.LastCommandExecuted;
string expectedCommand = "Invoke-InitializePackages";
Assert.AreEqual(expectedCommand, command);
@ -83,7 +83,7 @@ namespace PackageManagement.Tests.Scripting @@ -83,7 +83,7 @@ namespace PackageManagement.Tests.Scripting
fakeConsoleHost.IsRunning = true;
OpenSolution();
bool contains = fakeScriptingConsole.AllTextPassedToSendLine.Contains("Invoke-InitializePackages");
bool contains = fakeConsoleHost.CommandsExecuted.Contains("Invoke-InitializePackages");
Assert.IsFalse(contains);
}

Loading…
Cancel
Save