Browse Source

Refactor package script creation code.

pull/15/head
Matt Ward 14 years ago
parent
commit
6cd00943dc
  1. 6
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageScriptFactory.cs
  2. 4
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInitializationScripts.cs
  3. 4
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInitializeScript.cs
  4. 5
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInstallScript.cs
  5. 3
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageScript.cs
  6. 12
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageScriptFactory.cs
  7. 5
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageUninstallScript.cs
  8. 15
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/RunPackageScriptsAction.cs
  9. 9
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageScriptFactory.cs
  10. 7
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageScriptFactoryWithPredefinedPackageScripts.cs
  11. 15
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInitializeScriptTests.cs
  12. 15
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInstallScriptTests.cs

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

@ -8,8 +8,8 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -8,8 +8,8 @@ namespace ICSharpCode.PackageManagement.Scripting
{
public interface IPackageScriptFactory
{
IPackageScript CreatePackageInitializeScript(string packageInstallDirectory);
IPackageScript CreatePackageUninstallScript(string packageInstallDirectory);
IPackageScript CreatePackageInstallScript(string packageInstallDirectory);
IPackageScript CreatePackageInitializeScript(IPackage package, string packageInstallDirectory);
IPackageScript CreatePackageUninstallScript(IPackage package, string packageInstallDirectory);
IPackageScript CreatePackageInstallScript(IPackage package, string packageInstallDirectory);
}
}

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

@ -56,9 +56,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -56,9 +56,7 @@ namespace ICSharpCode.PackageManagement.Scripting
IPackageScript CreateInitializeScript(IPackage package)
{
string packageInstallDirectory = solutionPackageRepository.GetInstallPath(package);
IPackageScript script = scriptFactory.CreatePackageInitializeScript(packageInstallDirectory);
script.Package = package;
return script;
return scriptFactory.CreatePackageInitializeScript(package, packageInstallDirectory);
}
public bool Any()

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

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

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

@ -2,13 +2,14 @@ @@ -2,13 +2,14 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using NuGet;
namespace ICSharpCode.PackageManagement.Scripting
{
public class PackageInstallScript : PackageScript
{
public PackageInstallScript(IPackageScriptFileName fileName)
: base(fileName)
public PackageInstallScript(IPackage package, IPackageScriptFileName fileName)
: base(package, fileName)
{
}
}

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

@ -9,8 +9,9 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -9,8 +9,9 @@ namespace ICSharpCode.PackageManagement.Scripting
{
public class PackageScript : IPackageScript
{
public PackageScript(IPackageScriptFileName fileName)
public PackageScript(IPackage package, IPackageScriptFileName fileName)
{
this.Package = package;
this.ScriptFileName = fileName;
}

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

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

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

@ -2,13 +2,14 @@ @@ -2,13 +2,14 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using NuGet;
namespace ICSharpCode.PackageManagement.Scripting
{
public class PackageUninstallScript : PackageScript
{
public PackageUninstallScript(IPackageScriptFileName fileName)
: base(fileName)
public PackageUninstallScript(IPackage package, IPackageScriptFileName fileName)
: base(package, fileName)
{
}
}

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

@ -62,27 +62,26 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -62,27 +62,26 @@ namespace ICSharpCode.PackageManagement.Scripting
void RunInitScript(PackageOperationEventArgs e)
{
IPackageScript script = scriptFactory.CreatePackageInitializeScript(e.InstallPath);
RunScript(script, e.Package);
IPackageScript script = scriptFactory.CreatePackageInitializeScript(e.Package, e.InstallPath);
RunScript(script);
}
void RunScript(IPackageScript script, IPackage package)
void RunScript(IPackageScript script)
{
script.Project = project;
script.Package = package;
scriptRunner.Run(script);
}
void RunUninstallScript(PackageOperationEventArgs e)
{
IPackageScript script = scriptFactory.CreatePackageUninstallScript(e.InstallPath);
RunScript(script, e.Package);
IPackageScript script = scriptFactory.CreatePackageUninstallScript(e.Package, e.InstallPath);
RunScript(script);
}
void RunInstallScript(PackageOperationEventArgs e)
{
IPackageScript script = scriptFactory.CreatePackageInstallScript(e.InstallPath);
RunScript(script, e.Package);
IPackageScript script = scriptFactory.CreatePackageInstallScript(e.Package, e.InstallPath);
RunScript(script);
}
public void Dispose()

9
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageScriptFactory.cs

@ -36,28 +36,31 @@ namespace PackageManagement.Tests.Helpers @@ -36,28 +36,31 @@ namespace PackageManagement.Tests.Helpers
get { return FakePackageUninstallScriptsCreated[0]; }
}
public IPackageScript CreatePackageInitializeScript(string packageInstallDirectory)
public IPackageScript CreatePackageInitializeScript(IPackage package, string packageInstallDirectory)
{
PackageInstallDirectoriesPassed.Add(packageInstallDirectory);
var script = new FakePackageScript();
script.Package = package;
script.ExistsReturnValue = ScriptFileExistsReturnValue;
FakePackageInitializeScriptsCreated.Add(script);
return script;
}
public IPackageScript CreatePackageUninstallScript(string packageInstallDirectory)
public IPackageScript CreatePackageUninstallScript(IPackage package, string packageInstallDirectory)
{
PackageInstallDirectoriesPassed.Add(packageInstallDirectory);
var script = new FakePackageScript();
script.Package = package;
script.ExistsReturnValue = ScriptFileExistsReturnValue;
FakePackageUninstallScriptsCreated.Add(script);
return script;
}
public IPackageScript CreatePackageInstallScript(string packageInstallDirectory)
public IPackageScript CreatePackageInstallScript(IPackage package, string packageInstallDirectory)
{
PackageInstallDirectoriesPassed.Add(packageInstallDirectory);
var script = new FakePackageScript();
script.Package = package;
script.ExistsReturnValue = ScriptFileExistsReturnValue;
FakePackageInstallScriptsCreated.Add(script);
return script;

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

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using ICSharpCode.PackageManagement.Scripting;
using NuGet;
namespace PackageManagement.Tests.Helpers
{
@ -18,19 +19,19 @@ namespace PackageManagement.Tests.Helpers @@ -18,19 +19,19 @@ namespace PackageManagement.Tests.Helpers
return script;
}
public IPackageScript CreatePackageInitializeScript(string packageInstallDirectory)
public IPackageScript CreatePackageInitializeScript(IPackage package, string packageInstallDirectory)
{
FakePackageScript script = FakeInitializeScripts[0];
FakeInitializeScripts.RemoveAt(0);
return script;
}
public IPackageScript CreatePackageUninstallScript(string packageInstallDirectory)
public IPackageScript CreatePackageUninstallScript(IPackage package, string packageInstallDirectory)
{
throw new NotImplementedException();
}
public IPackageScript CreatePackageInstallScript(string packageInstallDirectory)
public IPackageScript CreatePackageInstallScript(IPackage package, string packageInstallDirectory)
{
throw new NotImplementedException();
}

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

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.Scripting;
using NuGet;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
@ -15,12 +16,14 @@ namespace PackageManagement.Tests.Scripting @@ -15,12 +16,14 @@ namespace PackageManagement.Tests.Scripting
PackageInitializeScript script;
FakePackageScriptSession fakeSession;
FakePackageScriptFileName fakeScriptFileName;
FakePackage fakePackage;
void CreateScript()
{
fakeScriptFileName = new FakePackageScriptFileName();
fakeSession = new FakePackageScriptSession();
script = new PackageInitializeScript(fakeScriptFileName);
fakePackage = new FakePackage();
script = new PackageInitializeScript(fakePackage, fakeScriptFileName);
}
void AssertSessionVariableIsRemoved(string variableName)
@ -210,5 +213,15 @@ namespace PackageManagement.Tests.Scripting @@ -210,5 +213,15 @@ namespace PackageManagement.Tests.Scripting
AssertSessionVariableIsRemoved("__project");
}
[Test]
public void Package_PackagePassedToConstructor_ReturnsPackagePassedToConstructor()
{
CreateScript();
IPackage package = script.Package;
Assert.AreEqual(fakePackage, package);
}
}
}

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

@ -5,6 +5,7 @@ using System; @@ -5,6 +5,7 @@ using System;
using ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.PackageManagement.Scripting;
using NuGet;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
@ -17,6 +18,7 @@ namespace PackageManagement.Tests.Scripting @@ -17,6 +18,7 @@ namespace PackageManagement.Tests.Scripting
FakePackageScriptSession fakeSession;
PackageInstallScript script;
FakeFileSystem fakeFileSystem;
FakePackage fakePackage;
void CreateScript()
{
@ -26,8 +28,9 @@ namespace PackageManagement.Tests.Scripting @@ -26,8 +28,9 @@ namespace PackageManagement.Tests.Scripting
scriptFileName = new PackageInstallScriptFileName(fakeFileSystem);
fakeSession = new FakePackageScriptSession();
fakePackage = new FakePackage();
script = new PackageInstallScript(scriptFileName);
script = new PackageInstallScript(fakePackage, scriptFileName);
}
void ExecuteScript()
@ -95,5 +98,15 @@ namespace PackageManagement.Tests.Scripting @@ -95,5 +98,15 @@ namespace PackageManagement.Tests.Scripting
Assert.AreEqual(@"tools\install.ps1", fileChecked);
}
[Test]
public void Package_PackagePassedToConstructor_ReturnsPackagePassedToConstructor()
{
CreateScript();
IPackage package = script.Package;
Assert.AreEqual(fakePackage, package);
}
}
}

Loading…
Cancel
Save