Browse Source

NuGet package now being passed to PowerShell scripts.

pull/15/head
Matt Ward 15 years ago
parent
commit
e577490860
  1. 4
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/IPackageScript.cs
  2. 4
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PackageInitializationScripts.cs
  3. 13
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/RunPackageScriptsAction.cs
  4. 2
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageScript.cs
  5. 12
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/PackageInitializationScriptsTests.cs
  6. 77
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/RunPackageScriptsActionTests.cs

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

@ -2,13 +2,15 @@ @@ -2,13 +2,15 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using NuGet;
namespace ICSharpCode.PackageManagement.Scripting
{
public interface IPackageScript
{
IPackageManagementProject Project { get; set; }
IPackage Package { get; set; }
bool Exists();
void Run(IPackageScriptSession session);
}

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

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

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

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

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

@ -4,12 +4,14 @@ @@ -4,12 +4,14 @@
using System;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Scripting;
using NuGet;
namespace PackageManagement.Tests.Helpers
{
public class FakePackageScript : IPackageScript
{
public IPackageManagementProject Project { get; set; }
public IPackage Package { get; set; }
public bool IsRun;
public IPackageScriptSession SessionPassedToRun;

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

@ -157,5 +157,17 @@ namespace PackageManagement.Tests.Scripting @@ -157,5 +157,17 @@ namespace PackageManagement.Tests.Scripting
Assert.IsFalse(run);
}
[Test]
public void Run_OnePackageInRepository_PackageScriptSetsPackageInSession()
{
CreateScripts();
FakePackage expectedPackage = AddPackageToRepository("Test");
scripts.Run(fakeSession);
var package = fakeScriptFactory.FirstPackageInitializeScriptCreated.Package;
Assert.AreEqual(expectedPackage, package);
}
}
}

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

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.Scripting;
using NuGet;
@ -34,6 +35,17 @@ namespace PackageManagement.Tests.Scripting @@ -34,6 +35,17 @@ namespace PackageManagement.Tests.Scripting
PackageOperationEventArgs CreatePackageOperationEventArgs(string installPath)
{
var package = new FakePackage("Test");
return CreatePackageOperationEventArgs(package, installPath);
}
PackageOperationEventArgs CreatePackageOperationEventArgs(FakePackage package)
{
string installPath = @"d:\projects\myproject\packages\test";
return CreatePackageOperationEventArgs(package, installPath);
}
PackageOperationEventArgs CreatePackageOperationEventArgs(FakePackage package, string installPath)
{
string targetPath = @"d:\projects\myproject\packages\target";
return new PackageOperationEventArgs(package, targetPath, installPath);
}
@ -42,7 +54,7 @@ namespace PackageManagement.Tests.Scripting @@ -42,7 +54,7 @@ namespace PackageManagement.Tests.Scripting
public void Constructor_PackageIsInstalled_PackageInitScriptIsRun()
{
CreateAction();
var eventArgs = CreatePackageOperationEventArgs();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageInstalledEvent(eventArgs);
IPackageScript actualScript = fakeScriptRunner.FirstScriptRun;
@ -55,7 +67,7 @@ namespace PackageManagement.Tests.Scripting @@ -55,7 +67,7 @@ namespace PackageManagement.Tests.Scripting
public void Constructor_PackageIsInstalled_PackageInitScriptIsCreated()
{
CreateAction();
var eventArgs = CreatePackageOperationEventArgs(@"d:\projects\myproject\packages\test");
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs(@"d:\projects\myproject\packages\test");
fakeProject.FirePackageInstalledEvent(eventArgs);
@ -70,7 +82,7 @@ namespace PackageManagement.Tests.Scripting @@ -70,7 +82,7 @@ namespace PackageManagement.Tests.Scripting
CreateAction();
action.Dispose();
var eventArgs = CreatePackageOperationEventArgs();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageInstalledEvent(eventArgs);
int count = fakeScriptFactory.FakePackageInstallScriptsCreated.Count;
@ -78,11 +90,24 @@ namespace PackageManagement.Tests.Scripting @@ -78,11 +90,24 @@ namespace PackageManagement.Tests.Scripting
Assert.AreEqual(0, count);
}
[Test]
public void Constructor_PackageIsInstalled_PackageInitScriptIsPassedPackage()
{
CreateAction();
var expectedPackage = new FakePackage();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs(expectedPackage);
fakeProject.FirePackageInstalledEvent(eventArgs);
IPackage package = fakeScriptFactory.FirstPackageInitializeScriptCreated.Package;
Assert.AreEqual(expectedPackage, package);
}
[Test]
public void Constructor_PackageReferenceIsAdded_PackageInstallScriptIsRun()
{
CreateAction();
var eventArgs = CreatePackageOperationEventArgs();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceAddedEvent(eventArgs);
IPackageScript actualScript = fakeScriptRunner.FirstScriptRun;
@ -95,7 +120,7 @@ namespace PackageManagement.Tests.Scripting @@ -95,7 +120,7 @@ namespace PackageManagement.Tests.Scripting
public void Constructor_PackageReferenceIsAdded_PackageInstallScriptIsCreated()
{
CreateAction();
var eventArgs = CreatePackageOperationEventArgs(@"d:\projects\myproject\packages\test");
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs(@"d:\projects\myproject\packages\test");
fakeProject.FirePackageReferenceAddedEvent(eventArgs);
string path = fakeScriptFactory.FirstPackageInstallDirectoryPassed;
@ -109,7 +134,7 @@ namespace PackageManagement.Tests.Scripting @@ -109,7 +134,7 @@ namespace PackageManagement.Tests.Scripting
CreateAction();
action.Dispose();
var eventArgs = CreatePackageOperationEventArgs();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceAddedEvent(eventArgs);
int count = fakeScriptFactory.FakePackageInstallScriptsCreated.Count;
@ -121,19 +146,32 @@ namespace PackageManagement.Tests.Scripting @@ -121,19 +146,32 @@ namespace PackageManagement.Tests.Scripting
public void Constructor_PackageReferenceIsAdded_InstallScriptIsPassedProject()
{
CreateAction();
var eventArgs = CreatePackageOperationEventArgs();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceAddedEvent(eventArgs);
var project = fakeScriptFactory.FirstPackageInstallScriptCreated.Project;
IPackageManagementProject project = fakeScriptFactory.FirstPackageInstallScriptCreated.Project;
Assert.AreEqual(fakeProject, project);
}
[Test]
public void Constructor_PackageReferenceIsAdded_InstallScriptIsPassedPackageFromPackageOperationEventArgs()
{
CreateAction();
var expectedPackage = new FakePackage();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs(expectedPackage);
fakeProject.FirePackageReferenceAddedEvent(eventArgs);
IPackage package = fakeScriptFactory.FirstPackageInstallScriptCreated.Package;
Assert.AreEqual(expectedPackage, package);
}
[Test]
public void Constructor_PackageReferenceIsRemoved_PackageUninstallScriptIsRun()
{
CreateAction();
var eventArgs = CreatePackageOperationEventArgs();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
IPackageScript actualScript = fakeScriptRunner.FirstScriptRun;
@ -146,7 +184,7 @@ namespace PackageManagement.Tests.Scripting @@ -146,7 +184,7 @@ namespace PackageManagement.Tests.Scripting
public void Constructor_PackageReferenceIsRemoved_PackageUninstallScriptIsCreated()
{
CreateAction();
var eventArgs = CreatePackageOperationEventArgs(@"d:\projects\myproject\packages\test");
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs(@"d:\projects\myproject\packages\test");
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
string path = fakeScriptFactory.FirstPackageInstallDirectoryPassed;
@ -160,7 +198,7 @@ namespace PackageManagement.Tests.Scripting @@ -160,7 +198,7 @@ namespace PackageManagement.Tests.Scripting
CreateAction();
action.Dispose();
var eventArgs = CreatePackageOperationEventArgs();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
int count = fakeScriptFactory.FakePackageUninstallScriptsCreated.Count;
@ -172,12 +210,25 @@ namespace PackageManagement.Tests.Scripting @@ -172,12 +210,25 @@ namespace PackageManagement.Tests.Scripting
public void Constructor_PackageReferenceIsRemoved_UninstallScriptIsPassedProject()
{
CreateAction();
var eventArgs = CreatePackageOperationEventArgs();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
var project = fakeScriptFactory.FirstPackageUninstallScriptCreated.Project;
IPackageManagementProject project = fakeScriptFactory.FirstPackageUninstallScriptCreated.Project;
Assert.AreEqual(fakeProject, project);
}
[Test]
public void Constructor_PackageReferenceIsRemoved_UninstallScriptIsPassedPackageFromPackageOperationEventArgs()
{
CreateAction();
var expectedPackage = new FakePackage();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs(expectedPackage);
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
IPackage package = fakeScriptFactory.FirstPackageUninstallScriptCreated.Package;
Assert.AreEqual(expectedPackage, package);
}
}
}

Loading…
Cancel
Save