diff --git a/.hgsubstate b/.hgsubstate index a173086ed..84c2aaa8a 100644 --- a/.hgsubstate +++ b/.hgsubstate @@ -1 +1 @@ -e39a3ec1bb6537c3c75a1896b8ecc645a1b6956a external/nuget +299e6c980fd683c0a9dba451dcd07d36b7db537a external/nuget diff --git a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj index a0b4073ba..e1c710f93 100644 --- a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj +++ b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj @@ -127,6 +127,9 @@ + + + diff --git a/src/Orchard.Tests.Modules/Packaging/HelloDriver.cs.txt b/src/Orchard.Tests.Modules/Packaging/HelloDriver.cs.txt new file mode 100644 index 000000000..a376f809f --- /dev/null +++ b/src/Orchard.Tests.Modules/Packaging/HelloDriver.cs.txt @@ -0,0 +1,9 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Orchard.Tests.Modules.Packaging { + class HelloDriver { + } +} diff --git a/src/Orchard.Tests.Modules/Packaging/Migrations.cs.txt b/src/Orchard.Tests.Modules/Packaging/Migrations.cs.txt new file mode 100644 index 000000000..0c6c2a98b --- /dev/null +++ b/src/Orchard.Tests.Modules/Packaging/Migrations.cs.txt @@ -0,0 +1,9 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Orchard.Tests.Modules.Packaging { + class Migrations { + } +} diff --git a/src/Orchard.Tests.Modules/Packaging/PackageBuilderTests.cs b/src/Orchard.Tests.Modules/Packaging/PackageBuilderTests.cs index b167c62ce..134e7ff93 100644 --- a/src/Orchard.Tests.Modules/Packaging/PackageBuilderTests.cs +++ b/src/Orchard.Tests.Modules/Packaging/PackageBuilderTests.cs @@ -30,6 +30,7 @@ namespace Orchard.Tests.Modules.Packaging { Author = "b" }); } + [Test] public void PackageForModuleIsOpcPackage() { var packageBuilder = _container.Resolve(); @@ -51,7 +52,6 @@ namespace Orchard.Tests.Modules.Packaging { Assert.That(package.PackageProperties.Version, Is.EqualTo("1.0")); } - [Test] public void ProjectFileIsAdded() { var packageBuilder = _container.Resolve(); diff --git a/src/Orchard.Tests.Modules/Packaging/PackageExpanderTests.cs b/src/Orchard.Tests.Modules/Packaging/PackageExpanderTests.cs new file mode 100644 index 000000000..53078d6c7 --- /dev/null +++ b/src/Orchard.Tests.Modules/Packaging/PackageExpanderTests.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.IO.Packaging; +using System.Linq; +using System.Text; +using Autofac; +using NUnit.Framework; +using Orchard.Environment.Extensions; +using Orchard.Environment.Extensions.Models; +using Orchard.FileSystems.VirtualPath; +using Orchard.FileSystems.WebSite; +using Orchard.Packaging.Services; +using Orchard.Services; +using Orchard.Tests.Stubs; + +namespace Orchard.Tests.Modules.Packaging { + [TestFixture] + public class PackageExpanderTests : ContainerTestBase { + protected override void Register(Autofac.ContainerBuilder builder) { + builder.RegisterType().As(); + builder.RegisterType().As(); + builder.RegisterInstance(new StubVirtualPathProvider(new StubFileSystem(new Clock()))); + builder.RegisterType().As() + .As().InstancePerLifetimeScope(); + } + + private Stream BuildHelloWorld(IPackageBuilder packageBuilder) { + return packageBuilder.BuildPackage(new ExtensionDescriptor { + ExtensionType = "Module", + Name = "Hello.World", + Version = "1.0", + Description = "a", + Author = "b" + }); + } + } +} diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Commands/PackagingCommands.cs b/src/Orchard.Web/Modules/Orchard.Packaging/Commands/PackagingCommands.cs index 77034404d..70de03b07 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Commands/PackagingCommands.cs +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Commands/PackagingCommands.cs @@ -54,12 +54,23 @@ namespace Orchard.Packaging.Commands { Context.Output.WriteLine(T("File \"{0}\" does not exist.", filename)); } - var packageInfo = _packageManager.Install(filename, GetSolutionFolder()); + var solutionFolder = GetSolutionFolder(); + + if(solutionFolder == null) { + Context.Output.WriteLine(T("The project's location is not supported")); + } + + var packageInfo = _packageManager.Install(filename, solutionFolder); Context.Output.WriteLine(T("Package \"{0}\" successfully installed at \"{1}\"", packageInfo.ExtensionName, packageInfo.ExtensionPath)); } - private string GetSolutionFolder() { - return Directory.GetParent(OrchardWebProj).Parent.FullName; + private static string GetSolutionFolder() { + var orchardDirectory = Directory.GetParent(OrchardWebProj); + if(orchardDirectory.Parent == null) { + return null; + } + + return orchardDirectory.Parent.FullName; } } } diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Services/IPackageManager.cs b/src/Orchard.Web/Modules/Orchard.Packaging/Services/IPackageManager.cs index 689a68272..9497a25cf 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Services/IPackageManager.cs +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Services/IPackageManager.cs @@ -1,3 +1,4 @@ +using System; using System.IO; namespace Orchard.Packaging.Services { @@ -7,5 +8,6 @@ namespace Orchard.Packaging.Services { void Push(PackageData packageData, string feedUrl, string login, string password); PackageInfo Install(string filename, string destination); + PackageInfo Install(Uri uri, string destination); } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageManager.cs b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageManager.cs index 11846277c..b45502bee 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageManager.cs +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageManager.cs @@ -93,6 +93,11 @@ namespace Orchard.Packaging.Services { return _packageExpander.ExpandPackage(packageId, version, location, destination); } + public PackageInfo Install(Uri uri, string destination) { + return null; + } + + #endregion } } \ No newline at end of file