Browse Source

Refactor package script classes to no longer require the PowerShell session to be available when they are created.

pull/15/head
Matt Ward 14 years ago
parent
commit
32f20ce0f7
  1. 4
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InvokeInitializePackagesCmdlet.cs
  2. 20
      src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InvokeInitializePackagesCmdletTests.cs
  3. 2
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageInitializationScripts.cs
  4. 3
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageInitializationScriptsFactory.cs
  5. 2
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageScript.cs
  6. 6
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInitializationScripts.cs
  7. 5
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInitializationScriptsFactory.cs
  8. 6
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInitializeScript.cs
  9. 6
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInstallScript.cs
  10. 13
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageScript.cs
  11. 13
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageScriptFactory.cs
  12. 6
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageUninstallScript.cs
  13. 2
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/RunPackageInitializationScriptsOnSolutionOpen.cs
  14. 11
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/RunPackageScriptsAction.cs
  15. 6
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageInitializationScriptsInSolution.cs
  16. 5
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageInitializationScriptsInSolutionFactory.cs
  17. 6
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageScript.cs
  18. 22
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInitializationScriptsTests.cs
  19. 35
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInitializeScriptTests.cs
  20. 13
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInstallScriptTests.cs
  21. 19
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/RunPackageScriptsActionTests.cs

4
src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InvokeInitializePackagesCmdlet.cs

@ -50,14 +50,14 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -50,14 +50,14 @@ namespace ICSharpCode.PackageManagement.Cmdlets
{
IPackageInitializationScripts scripts = GetPackageInitializationScripts();
if (scripts.Any()) {
scripts.Run();
scripts.Run(this);
}
}
IPackageInitializationScripts GetPackageInitializationScripts()
{
Solution solution = projectService.OpenSolution;
return scriptsFactory.CreatePackageInitializationScripts(solution, this);
return scriptsFactory.CreatePackageInitializationScripts(solution);
}
}
}

20
src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InvokeInitializePackagesCmdletTests.cs

@ -49,9 +49,9 @@ namespace PackageManagement.Cmdlets.Tests @@ -49,9 +49,9 @@ namespace PackageManagement.Cmdlets.Tests
SolutionHasPackageInitializationScripts();
RunCmdlet();
bool run = scriptsFactory.FakePackageInitializationScripts.IsRunCalled;
IPackageScriptSession session = scriptsFactory.FakePackageInitializationScripts.SessionPassedToRun;
Assert.IsTrue(run);
Assert.AreEqual(cmdlet, session);
}
[Test]
@ -61,9 +61,9 @@ namespace PackageManagement.Cmdlets.Tests @@ -61,9 +61,9 @@ namespace PackageManagement.Cmdlets.Tests
SolutionHasNoPackageInitializationScripts();
RunCmdlet();
bool run = scriptsFactory.FakePackageInitializationScripts.IsRunCalled;
IPackageScriptSession session = scriptsFactory.FakePackageInitializationScripts.SessionPassedToRun;
Assert.IsFalse(run);
Assert.IsNull(session);
}
[Test]
@ -78,18 +78,6 @@ namespace PackageManagement.Cmdlets.Tests @@ -78,18 +78,6 @@ namespace PackageManagement.Cmdlets.Tests
Assert.AreEqual(expectedSolution, actualSolution);
}
[Test]
public void ProcessRecord_SolutionHasPackageInitializationScripts_PackageScriptSessionIsCmdlet()
{
CreateCmdlet();
SolutionHasPackageInitializationScripts();
RunCmdlet();
IPackageScriptSession session = scriptsFactory.ScriptSessionPassedToCreatePackageInitializationScripts;
Assert.AreEqual(cmdlet, session);
}
[Test]
public void ProcessRecord_SolutionHasPackageInitializationScripts_PowerShellWorkingDirectoryIsUpdated()
{

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

@ -8,6 +8,6 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -8,6 +8,6 @@ namespace ICSharpCode.PackageManagement.Scripting
public interface IPackageInitializationScripts
{
bool Any();
void Run();
void Run(IPackageScriptSession session);
}
}

3
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageInitializationScriptsFactory.cs

@ -9,7 +9,6 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -9,7 +9,6 @@ namespace ICSharpCode.PackageManagement.Scripting
public interface IPackageInitializationScriptsFactory
{
IPackageInitializationScripts CreatePackageInitializationScripts(
Solution solution,
IPackageScriptSession scriptSession);
Solution solution);
}
}

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

@ -10,6 +10,6 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -10,6 +10,6 @@ namespace ICSharpCode.PackageManagement.Scripting
IPackageManagementProject Project { get; set; }
bool Exists();
void Execute();
void Execute(IPackageScriptSession session);
}
}

6
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInitializationScripts.cs

@ -22,11 +22,11 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -22,11 +22,11 @@ namespace ICSharpCode.PackageManagement.Scripting
this.scriptFactory = scriptFactory;
}
public void Run()
public void Run(IPackageScriptSession session)
{
foreach (IPackageScript script in GetScripts()) {
script.Execute();
}
script.Execute(session);
}
}
List<IPackageScript> GetScripts()

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

@ -9,11 +9,10 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -9,11 +9,10 @@ namespace ICSharpCode.PackageManagement.Scripting
public class PackageInitializationScriptsFactory : IPackageInitializationScriptsFactory
{
public IPackageInitializationScripts CreatePackageInitializationScripts(
Solution solution,
IPackageScriptSession scriptSession)
Solution solution)
{
var repository = new SolutionPackageRepository(solution);
var scriptFactory = new PackageScriptFactory(scriptSession);
var scriptFactory = new PackageScriptFactory();
return new PackageInitializationScripts(repository, scriptFactory);
}
}

6
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInitializeScript.cs

@ -8,10 +8,8 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -8,10 +8,8 @@ namespace ICSharpCode.PackageManagement.Scripting
{
public class PackageInitializeScript : PackageScript
{
public PackageInitializeScript(
IPackageScriptFileName fileName,
IPackageScriptSession session)
: base(fileName, session)
public PackageInitializeScript(IPackageScriptFileName fileName)
: base(fileName)
{
}

6
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInstallScript.cs

@ -7,10 +7,8 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -7,10 +7,8 @@ namespace ICSharpCode.PackageManagement.Scripting
{
public class PackageInstallScript : PackageScript
{
public PackageInstallScript(
IPackageScriptFileName fileName,
IPackageScriptSession session)
: base(fileName, session)
public PackageInstallScript(IPackageScriptFileName fileName)
: base(fileName)
{
}
}

13
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageScript.cs

@ -9,12 +9,9 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -9,12 +9,9 @@ namespace ICSharpCode.PackageManagement.Scripting
{
public class PackageScript : IPackageScript
{
public PackageScript(
IPackageScriptFileName fileName,
IPackageScriptSession session)
public PackageScript(IPackageScriptFileName fileName)
{
this.ScriptFileName = fileName;
this.Session = session;
}
protected IPackageScriptFileName ScriptFileName { get; private set; }
@ -28,7 +25,13 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -28,7 +25,13 @@ namespace ICSharpCode.PackageManagement.Scripting
return ScriptFileName.FileExists();
}
public void Execute()
public void Execute(IPackageScriptSession session)
{
this.Session = session;
Execute();
}
void Execute()
{
BeforeExecute();
if (Exists()) {

13
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageScriptFactory.cs

@ -8,29 +8,22 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -8,29 +8,22 @@ namespace ICSharpCode.PackageManagement.Scripting
{
public class PackageScriptFactory : IPackageScriptFactory
{
IPackageScriptSession session;
public PackageScriptFactory(IPackageScriptSession session)
{
this.session = session;
}
public IPackageScript CreatePackageInitializeScript(string packageInstallDirectory)
{
var scriptFileName = new PackageInitializeScriptFileName(packageInstallDirectory);
return new PackageInitializeScript(scriptFileName, session);
return new PackageInitializeScript(scriptFileName);
}
public IPackageScript CreatePackageUninstallScript(string packageInstallDirectory)
{
var scriptFileName = new PackageUninstallScriptFileName(packageInstallDirectory);
return new PackageUninstallScript(scriptFileName, session);
return new PackageUninstallScript(scriptFileName);
}
public IPackageScript CreatePackageInstallScript(string packageInstallDirectory)
{
var scriptFileName = new PackageInstallScriptFileName(packageInstallDirectory);
return new PackageInstallScript(scriptFileName, session);
return new PackageInstallScript(scriptFileName);
}
}
}

6
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageUninstallScript.cs

@ -7,10 +7,8 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -7,10 +7,8 @@ namespace ICSharpCode.PackageManagement.Scripting
{
public class PackageUninstallScript : PackageScript
{
public PackageUninstallScript(
IPackageScriptFileName fileName,
IPackageScriptSession session)
: base(fileName, session)
public PackageUninstallScript(IPackageScriptFileName fileName)
: base(fileName)
{
}
}

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

@ -56,7 +56,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -56,7 +56,7 @@ namespace ICSharpCode.PackageManagement.Scripting
IPackageInitializationScripts CreatePackageInitializationScripts(Solution solution)
{
return scriptsFactory.CreatePackageInitializationScripts(solution, null);
return scriptsFactory.CreatePackageInitializationScripts(solution);
}
}
}

11
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/RunPackageScriptsAction.cs

@ -10,19 +10,22 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -10,19 +10,22 @@ namespace ICSharpCode.PackageManagement.Scripting
{
IPackageManagementProject project;
IPackageScriptFactory scriptFactory;
IPackageScriptSession scriptSession;
public RunPackageScriptsAction(
IPackageScriptSession session,
IPackageManagementProject project)
: this(project, new PackageScriptFactory(session))
: this(project, session, new PackageScriptFactory())
{
}
public RunPackageScriptsAction(
IPackageManagementProject project,
IPackageScriptSession session,
IPackageScriptFactory scriptFactory)
{
this.project = project;
this.scriptSession = session;
this.scriptFactory = scriptFactory;
RegisterEvents();
@ -60,21 +63,21 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -60,21 +63,21 @@ namespace ICSharpCode.PackageManagement.Scripting
void RunInitScript(PackageOperationEventArgs e)
{
IPackageScript script = scriptFactory.CreatePackageInitializeScript(e.InstallPath);
script.Execute();
script.Execute(scriptSession);
}
void RunUninstallScript(PackageOperationEventArgs e)
{
IPackageScript script = scriptFactory.CreatePackageUninstallScript(e.InstallPath);
script.Project = project;
script.Execute();
script.Execute(scriptSession);
}
void RunInstallScript(PackageOperationEventArgs e)
{
IPackageScript script = scriptFactory.CreatePackageInstallScript(e.InstallPath);
script.Project = project;
script.Execute();
script.Execute(scriptSession);
}
public void Dispose()

6
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageInitializationScriptsInSolution.cs

@ -8,11 +8,11 @@ namespace PackageManagement.Tests.Helpers @@ -8,11 +8,11 @@ namespace PackageManagement.Tests.Helpers
{
public class FakePackageInitializationScripts : IPackageInitializationScripts
{
public bool IsRunCalled;
public IPackageScriptSession SessionPassedToRun;
public void Run()
public void Run(IPackageScriptSession session)
{
IsRunCalled = true;
SessionPassedToRun = session;
}
public bool AnyReturnValue = true;

5
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageInitializationScriptsInSolutionFactory.cs

@ -13,14 +13,11 @@ namespace PackageManagement.Tests.Helpers @@ -13,14 +13,11 @@ namespace PackageManagement.Tests.Helpers
new FakePackageInitializationScripts();
public Solution SolutionPassedToCreatePackageInitializationScripts;
public IPackageScriptSession ScriptSessionPassedToCreatePackageInitializationScripts;
public IPackageInitializationScripts CreatePackageInitializationScripts(
Solution solution,
IPackageScriptSession scriptSession)
Solution solution)
{
SolutionPassedToCreatePackageInitializationScripts = solution;
ScriptSessionPassedToCreatePackageInitializationScripts = scriptSession;
return FakePackageInitializationScripts;
}
}

6
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageScript.cs

@ -11,11 +11,13 @@ namespace PackageManagement.Tests.Helpers @@ -11,11 +11,13 @@ namespace PackageManagement.Tests.Helpers
{
public IPackageManagementProject Project { get; set; }
public bool IsExecuted;
public bool IsExecuted;
public IPackageScriptSession SessionPassedToExecute;
public void Execute()
public void Execute(IPackageScriptSession session)
{
IsExecuted = true;
SessionPassedToExecute = session;
}
public bool ExistsReturnValue = true;

22
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInitializationScriptsTests.cs

@ -16,6 +16,7 @@ namespace PackageManagement.Tests.Scripting @@ -16,6 +16,7 @@ namespace PackageManagement.Tests.Scripting
PackageInitializationScripts scripts;
FakePackageScriptFactory fakeScriptFactory;
FakeSolutionPackageRepository fakeSolutionPackageRepository;
FakePackageScriptSession fakeSession;
FakePackageScriptFactoryWithPredefinedPackageScripts fakeScriptFactoryWithPredefinedPackageScripts;
void CreateScripts()
@ -27,6 +28,7 @@ namespace PackageManagement.Tests.Scripting @@ -27,6 +28,7 @@ namespace PackageManagement.Tests.Scripting
void CreateScripts(IPackageScriptFactory scriptFactory)
{
fakeSolutionPackageRepository = new FakeSolutionPackageRepository();
fakeSession = new FakePackageScriptSession();
scripts = new PackageInitializationScripts(fakeSolutionPackageRepository, scriptFactory);
}
@ -61,11 +63,12 @@ namespace PackageManagement.Tests.Scripting @@ -61,11 +63,12 @@ namespace PackageManagement.Tests.Scripting
{
CreateScripts();
AddPackageToRepository("Test");
scripts.Run();
scripts.Run(fakeSession);
bool executed = fakeScriptFactory.FirstPackageInitializeScriptCreated.IsExecuted;
IPackageScriptSession session = fakeScriptFactory.FirstPackageInitializeScriptCreated.SessionPassedToExecute;
FakePackageScriptSession expectedSession = fakeSession;
Assert.IsTrue(executed);
Assert.AreEqual(expectedSession, session);
}
[Test]
@ -76,7 +79,7 @@ namespace PackageManagement.Tests.Scripting @@ -76,7 +79,7 @@ namespace PackageManagement.Tests.Scripting
string expectedDirectory = @"d:\projects\myproject\packages\Test.1.0";
fakeSolutionPackageRepository.InstallPathToReturn = expectedDirectory;
scripts.Run();
scripts.Run(fakeSession);
string actualDirectory = fakeScriptFactory.FirstPackageInstallDirectoryPassed;
@ -88,7 +91,7 @@ namespace PackageManagement.Tests.Scripting @@ -88,7 +91,7 @@ namespace PackageManagement.Tests.Scripting
{
CreateScripts();
FakePackage package = AddPackageToRepository("Test");
scripts.Run();
scripts.Run(fakeSession);
IPackage actualPackage = fakeSolutionPackageRepository.PackagePassedToGetInstallPath;
@ -101,11 +104,12 @@ namespace PackageManagement.Tests.Scripting @@ -101,11 +104,12 @@ namespace PackageManagement.Tests.Scripting
CreateScripts();
AddPackageToRepository("A");
AddPackageToRepository("B");
scripts.Run();
scripts.Run(fakeSession);
bool executed = fakeScriptFactory.FakePackageInitializeScriptsCreated[1].IsExecuted;
IPackageScriptSession session = fakeScriptFactory.FakePackageInitializeScriptsCreated[1].SessionPassedToExecute;
FakePackageScriptSession expectedSession = fakeSession;
Assert.IsTrue(executed);
Assert.AreEqual(expectedSession, session);
}
[Test]
@ -147,7 +151,7 @@ namespace PackageManagement.Tests.Scripting @@ -147,7 +151,7 @@ namespace PackageManagement.Tests.Scripting
{
CreateScriptsWithTwoPackagesInRepositoryAndLastPackageScriptFileExistsButNotFirst();
FakePackageScript firstScript = fakeScriptFactoryWithPredefinedPackageScripts.FakeInitializeScripts[0];
scripts.Run();
scripts.Run(fakeSession);
bool executed = firstScript.IsExecuted;

35
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInitializeScriptTests.cs

@ -20,7 +20,7 @@ namespace PackageManagement.Tests.Scripting @@ -20,7 +20,7 @@ namespace PackageManagement.Tests.Scripting
{
fakeScriptFileName = new FakePackageScriptFileName();
fakeSession = new FakePackageScriptSession();
script = new PackageInitializeScript(fakeScriptFileName, fakeSession);
script = new PackageInitializeScript(fakeScriptFileName);
}
void AssertSessionVariableIsRemoved(string variableName)
@ -29,6 +29,11 @@ namespace PackageManagement.Tests.Scripting @@ -29,6 +29,11 @@ namespace PackageManagement.Tests.Scripting
Assert.IsTrue(removed);
}
void ExecuteScript()
{
script.Execute(fakeSession);
}
[Test]
public void Execute_ExistingEnvironmentPathIsEmptyString_PathToScriptAddedToEnvironmentPath()
{
@ -36,7 +41,7 @@ namespace PackageManagement.Tests.Scripting @@ -36,7 +41,7 @@ namespace PackageManagement.Tests.Scripting
fakeScriptFileName.GetScriptDirectoryReturnValue = @"d:\projects\myproject\packages\test\tools";
fakeSession.SetEnvironmentPath(String.Empty);
script.Execute();
ExecuteScript();
string actualEnvironmentPath = fakeSession.GetEnvironmentPath();
string expectedEnvironmentPath = @"d:\projects\myproject\packages\test\tools";
@ -51,7 +56,7 @@ namespace PackageManagement.Tests.Scripting @@ -51,7 +56,7 @@ namespace PackageManagement.Tests.Scripting
fakeScriptFileName.GetScriptDirectoryReturnValue = @"d:\projects\myproject\packages\test\tools";
fakeSession.SetEnvironmentPath(@"c:\users\sharpdevelop\ps;");
script.Execute();
ExecuteScript();
string actualEnvironmentPath = fakeSession.GetEnvironmentPath();
string expectedEnvironmentPath = @"c:\users\sharpdevelop\ps;d:\projects\myproject\packages\test\tools";
@ -66,7 +71,7 @@ namespace PackageManagement.Tests.Scripting @@ -66,7 +71,7 @@ namespace PackageManagement.Tests.Scripting
fakeScriptFileName.GetScriptDirectoryReturnValue = @"d:\projects\myproject\packages\test\tools";
fakeSession.SetEnvironmentPath(@"c:\users\sharpdevelop\ps");
script.Execute();
ExecuteScript();
string actualEnvironmentPath = fakeSession.GetEnvironmentPath();
string expectedEnvironmentPath = @"c:\users\sharpdevelop\ps;d:\projects\myproject\packages\test\tools";
@ -81,7 +86,7 @@ namespace PackageManagement.Tests.Scripting @@ -81,7 +86,7 @@ namespace PackageManagement.Tests.Scripting
fakeScriptFileName.GetScriptDirectoryReturnValue = @"d:\projects\myproject\packages\test\tools";
fakeSession.SetEnvironmentPath(null);
script.Execute();
ExecuteScript();
string actualEnvironmentPath = fakeSession.GetEnvironmentPath();
string expectedEnvironmentPath = @"d:\projects\myproject\packages\test\tools";
@ -97,7 +102,7 @@ namespace PackageManagement.Tests.Scripting @@ -97,7 +102,7 @@ namespace PackageManagement.Tests.Scripting
fakeScriptFileName.ScriptDirectoryExistsReturnValue = false;
fakeSession.SetEnvironmentPath(String.Empty);
script.Execute();
ExecuteScript();
string actualEnvironmentPath = fakeSession.GetEnvironmentPath();
string expectedEnvironmentPath = String.Empty;
@ -111,7 +116,7 @@ namespace PackageManagement.Tests.Scripting @@ -111,7 +116,7 @@ namespace PackageManagement.Tests.Scripting
CreateScript();
var expectedPackage = new FakePackage("Test");
script.Package = expectedPackage;
script.Execute();
ExecuteScript();
var actualPackage = fakeSession.VariablesAdded["__package"];
@ -124,7 +129,7 @@ namespace PackageManagement.Tests.Scripting @@ -124,7 +129,7 @@ namespace PackageManagement.Tests.Scripting
CreateScript();
string expectedRootPath = @"d:\projects\myproject\packages\test";
fakeScriptFileName.PackageInstallDirectory = expectedRootPath;
script.Execute();
ExecuteScript();
var rootPath = fakeSession.VariablesAdded["__rootPath"];
@ -136,7 +141,7 @@ namespace PackageManagement.Tests.Scripting @@ -136,7 +141,7 @@ namespace PackageManagement.Tests.Scripting
{
CreateScript();
fakeScriptFileName.GetScriptDirectoryReturnValue = @"d:\projects\myproject\packages\test\tools";
script.Execute();
ExecuteScript();
var toolsPath = fakeSession.VariablesAdded["__toolsPath"];
string expectedToolsPath = @"d:\projects\myproject\packages\test\tools";
@ -148,7 +153,7 @@ namespace PackageManagement.Tests.Scripting @@ -148,7 +153,7 @@ namespace PackageManagement.Tests.Scripting
public void Execute_PackageInstallDirectoryIsSet_ProjectSessionVariableIsSet()
{
CreateScript();
script.Execute();
ExecuteScript();
var project = fakeSession.VariablesAdded["__project"];
@ -160,7 +165,7 @@ namespace PackageManagement.Tests.Scripting @@ -160,7 +165,7 @@ namespace PackageManagement.Tests.Scripting
{
CreateScript();
fakeScriptFileName.ToStringReturnValue = @"d:\projects\myproject\packages\test\tools\init.ps1";
script.Execute();
ExecuteScript();
string actualScript = fakeSession.ScriptPassedToInvokeScript;
@ -174,7 +179,7 @@ namespace PackageManagement.Tests.Scripting @@ -174,7 +179,7 @@ namespace PackageManagement.Tests.Scripting
public void Execute_PackageInstallDirectoryIsSet_PackageSessionVariableIsRemoved()
{
CreateScript();
script.Execute();
ExecuteScript();
AssertSessionVariableIsRemoved("__package");
}
@ -183,7 +188,7 @@ namespace PackageManagement.Tests.Scripting @@ -183,7 +188,7 @@ namespace PackageManagement.Tests.Scripting
public void Execute_PackageInstallDirectoryIsSet_RootPathSessionVariableIsRemoved()
{
CreateScript();
script.Execute();
ExecuteScript();
AssertSessionVariableIsRemoved("__rootPath");
}
@ -192,7 +197,7 @@ namespace PackageManagement.Tests.Scripting @@ -192,7 +197,7 @@ namespace PackageManagement.Tests.Scripting
public void Execute_PackageInstallDirectoryIsSet_ToolsPathSessionVariableIsRemoved()
{
CreateScript();
script.Execute();
ExecuteScript();
AssertSessionVariableIsRemoved("__toolsPath");
}
@ -201,7 +206,7 @@ namespace PackageManagement.Tests.Scripting @@ -201,7 +206,7 @@ namespace PackageManagement.Tests.Scripting
public void Execute_PackageInstallDirectoryIsSet_ProjectSessionVariableIsRemoved()
{
CreateScript();
script.Execute();
ExecuteScript();
AssertSessionVariableIsRemoved("__project");
}

13
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInstallScriptTests.cs

@ -27,7 +27,12 @@ namespace PackageManagement.Tests.Scripting @@ -27,7 +27,12 @@ namespace PackageManagement.Tests.Scripting
fakeSession = new FakePackageScriptSession();
script = new PackageInstallScript(scriptFileName, fakeSession);
script = new PackageInstallScript(scriptFileName);
}
void ExecuteScript()
{
script.Execute(fakeSession);
}
[Test]
@ -38,7 +43,7 @@ namespace PackageManagement.Tests.Scripting @@ -38,7 +43,7 @@ namespace PackageManagement.Tests.Scripting
var project = new FakePackageManagementProject();
project.DTEProject = expectedProject;
script.Project = project;
script.Execute();
ExecuteScript();
var projectVariable = fakeSession.VariablesAdded["__project"];
@ -50,7 +55,7 @@ namespace PackageManagement.Tests.Scripting @@ -50,7 +55,7 @@ namespace PackageManagement.Tests.Scripting
{
CreateScript();
fakeFileSystem.FileExistsReturnValue = false;
script.Execute();
ExecuteScript();
bool executed = fakeSession.IsScriptExecuted;
@ -84,7 +89,7 @@ namespace PackageManagement.Tests.Scripting @@ -84,7 +89,7 @@ namespace PackageManagement.Tests.Scripting
{
CreateScript();
fakeFileSystem.FileExistsReturnValue = false;
script.Execute();
ExecuteScript();
string fileChecked = fakeFileSystem.PathPassedToFileExists;

19
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/RunPackageScriptsActionTests.cs

@ -16,12 +16,14 @@ namespace PackageManagement.Tests.Scripting @@ -16,12 +16,14 @@ namespace PackageManagement.Tests.Scripting
RunPackageScriptsAction action;
FakePackageManagementProject fakeProject;
FakePackageScriptFactory fakeScriptFactory;
FakePackageScriptSession fakeSession;
void CreateAction()
{
fakeProject = new FakePackageManagementProject();
fakeSession = new FakePackageScriptSession();
fakeScriptFactory = new FakePackageScriptFactory();
action = new RunPackageScriptsAction(fakeProject, fakeScriptFactory);
action = new RunPackageScriptsAction(fakeProject, fakeSession, fakeScriptFactory);
}
PackageOperationEventArgs CreatePackageOperationEventArgs()
@ -43,9 +45,10 @@ namespace PackageManagement.Tests.Scripting @@ -43,9 +45,10 @@ namespace PackageManagement.Tests.Scripting
var eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageInstalledEvent(eventArgs);
bool executed = fakeScriptFactory.FirstPackageInitializeScriptCreated.IsExecuted;
IPackageScriptSession session = fakeScriptFactory.FirstPackageInitializeScriptCreated.SessionPassedToExecute;
FakePackageScriptSession expectedSession = fakeSession;
Assert.IsTrue(executed);
Assert.AreEqual(expectedSession, session);
}
[Test]
@ -82,9 +85,10 @@ namespace PackageManagement.Tests.Scripting @@ -82,9 +85,10 @@ namespace PackageManagement.Tests.Scripting
var eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceAddedEvent(eventArgs);
bool executed = fakeScriptFactory.FirstPackageInstallScriptCreated.IsExecuted;
IPackageScriptSession session = fakeScriptFactory.FirstPackageInstallScriptCreated.SessionPassedToExecute;
FakePackageScriptSession expectedSession = fakeSession;
Assert.IsTrue(executed);
Assert.AreEqual(expectedSession, session);
}
[Test]
@ -132,9 +136,10 @@ namespace PackageManagement.Tests.Scripting @@ -132,9 +136,10 @@ namespace PackageManagement.Tests.Scripting
var eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
bool executed = fakeScriptFactory.FirstPackageUninstallScriptCreated.IsExecuted;
IPackageScriptSession session = fakeScriptFactory.FirstPackageUninstallScriptCreated.SessionPassedToExecute;
FakePackageScriptSession expectedSession = fakeSession;
Assert.IsTrue(executed);
Assert.AreEqual(expectedSession, session);
}
[Test]

Loading…
Cancel
Save