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
void InvokeRunPackageScriptsCmdlet() void InvokeRunPackageScriptsCmdlet()
{ {
string command = "Invoke-RunPackageScripts"; 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
void WritePrompt(); void WritePrompt();
void Run(); void Run();
void ShutdownConsole(); void ShutdownConsole();
void ExecuteCommand(string command);
IPackageManagementProject GetProject(string packageSource, string projectName); IPackageManagementProject GetProject(string packageSource, string projectName);
IPackageManagementProject GetProject(IPackageRepository sourceRepository, 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
void SetRemoteSignedExecutionPolicy(); void SetRemoteSignedExecutionPolicy();
void UpdateFormatting(IEnumerable<string> formattingFiles); void UpdateFormatting(IEnumerable<string> formattingFiles);
void ExecuteCommand(string command); 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
public void ExecuteCommand(string command) public void ExecuteCommand(string command)
{ {
if (consoleHost.IsRunning) { 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
ScriptingConsole.Dispose(); 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
consoleHost.ScriptingConsole.WriteLine(ex.Message, ScriptingStyle.Error); 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
void UpdateWorkingDirectory() void UpdateWorkingDirectory()
{ {
string command = "Invoke-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
{ {
IsShutdownConsoleCalled = true; 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
ConsoleHostIsRunning(); ConsoleHostIsRunning();
RunScriptThatExists(); RunScriptThatExists();
string command = fakeScriptingConsole.TextPassedToSendLine; string command = fakeConsoleHost.FirstCommandExecuted;
string expectedCommand = "Invoke-RunPackageScripts"; string expectedCommand = "Invoke-RunPackageScripts";
Assert.AreEqual(expectedCommand, command); Assert.AreEqual(expectedCommand, command);
@ -108,9 +108,9 @@ namespace PackageManagement.Tests.Scripting
ConsoleHostIsRunning(); ConsoleHostIsRunning();
RunScriptThatDoesNotExist(); RunScriptThatDoesNotExist();
string command = fakeScriptingConsole.TextPassedToSendLine; int count = fakeConsoleHost.CommandsExecuted.Count;
Assert.IsNull(command); Assert.AreEqual(0, count);
} }
[Test] [Test]

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

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

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

@ -545,5 +545,17 @@ namespace PackageManagement.Tests.Scripting
Assert.DoesNotThrow(() => host.ShutdownConsole()); 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
bool IsWorkingDirectoryUpdated() bool IsWorkingDirectoryUpdated()
{ {
return fakeScriptingConsole.AllTextPassedToSendLine.Contains("Invoke-UpdateWorkingDirectory"); return fakeConsoleHost.CommandsExecuted.Contains("Invoke-UpdateWorkingDirectory");
} }
[Test] [Test]

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

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

Loading…
Cancel
Save