Updated recipes unit test to accommodate Orchard.Recipes changes.

This commit is contained in:
Sipke Schoorstra
2015-07-23 10:34:39 +01:00
parent aa143054fc
commit 9f9a0cc4e5
4 changed files with 256 additions and 215 deletions

View File

@@ -159,8 +159,9 @@
<Compile Include="Packaging\Services\FileBasedProjectSystemTests.cs" />
<Compile Include="Packaging\Services\FolderUpdaterTests.cs" />
<Compile Include="Packaging\Services\PackageInstallerTests.cs" />
<Compile Include="Recipes\RecipeHandlers\RecipeExecutionStepHandlerTest.cs" />
<Compile Include="Recipes\RecipeHandlers\ModuleStepTest.cs" />
<Compile Include="Recipes\RecipeHandlers\ThemeRecipeHandlerTest.cs" />
<Compile Include="Recipes\RecipeHandlers\ThemeStepTest.cs" />
<Compile Include="Recipes\Services\RecipeManagerTests.cs" />
<Compile Include="Scripting.Dlr\EvaluatorTests.cs" />
<Compile Include="Scripting\EvaluatorTestsBase.cs" />

View File

@@ -24,7 +24,6 @@ using Orchard.Packaging.Models;
using Orchard.Packaging.Services;
using Orchard.Recipes.Models;
using Orchard.Recipes.Providers.Executors;
using Orchard.Recipes.Services;
using Orchard.Tests.Environment.Extensions;
using Orchard.Tests.Environment.Features;
using Orchard.Tests.Stubs;
@@ -87,27 +86,26 @@ Features:
IsLatestVersion = true,
});
IShellDescriptorManager shellDescriptorManager = _container.Resolve<IShellDescriptorManager>();
var shellDescriptorManager = _container.Resolve<IShellDescriptorManager>();
// No features enabled
shellDescriptorManager.UpdateShellDescriptor(0,
shellDescriptorManager.UpdateShellDescriptor(
0,
Enumerable.Empty<ShellFeature>(),
Enumerable.Empty<ShellParameter>());
var moduleStep = _container.Resolve<ModuleStep>();
var recipeContext = new RecipeContext { RecipeStep = new RecipeStep { Name = "Module", Step = new XElement("SuperWiki") } };
var recipeExecutionContext = new RecipeExecutionContext {RecipeStep = recipeContext.RecipeStep};
recipeContext.RecipeStep.Step.Add(new XAttribute("packageId", "Orchard.Module.SuperWiki"));
recipeContext.RecipeStep.Step.Add(new XAttribute("repository", "test"));
var recipeExecutionContext = new RecipeExecutionContext {RecipeStep = new RecipeStep { Name = "Module", Step = new XElement("SuperWiki") } };
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("packageId", "Orchard.Module.SuperWiki"));
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("repository", "test"));
IFeatureManager featureManager = _container.Resolve<IFeatureManager>();
IEnumerable<FeatureDescriptor> enabledFeatures = featureManager.GetEnabledFeatures();
var featureManager = _container.Resolve<IFeatureManager>();
var enabledFeatures = featureManager.GetEnabledFeatures();
Assert.That(enabledFeatures.Count(), Is.EqualTo(0));
moduleStep.Execute(recipeExecutionContext);
var availableFeatures = featureManager.GetAvailableFeatures().Where(x => x.Id == "SuperWiki").FirstOrDefault();
var availableFeatures = featureManager.GetAvailableFeatures().FirstOrDefault(x => x.Id == "SuperWiki");
Assert.That(availableFeatures.Id, Is.EqualTo("SuperWiki"));
Assert.That(recipeContext.Executed, Is.True);
}
[Test]
@@ -147,19 +145,17 @@ Features:
});
var moduleStep = _container.Resolve<ModuleStep>();
var recipeContext = new RecipeContext { RecipeStep = new RecipeStep { Name = "Module", Step = new XElement("SuperWiki") } };
var recipeExecutionContext = new RecipeExecutionContext { RecipeStep = recipeContext.RecipeStep };
var recipeExecutionContext = new RecipeExecutionContext { RecipeStep = new RecipeStep { Name = "Module", Step = new XElement("SuperWiki") } };
recipeContext.RecipeStep.Step.Add(new XAttribute("packageId", "Orchard.Module.SuperWiki"));
recipeContext.RecipeStep.Step.Add(new XAttribute("repository", "test"));
recipeContext.RecipeStep.Step.Add(new XAttribute("version", "1.0.2"));
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("packageId", "Orchard.Module.SuperWiki"));
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("repository", "test"));
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("version", "1.0.2"));
moduleStep.Execute(recipeExecutionContext);
var installedPackage = _packageManager.GetInstalledPackages().FirstOrDefault(info => info.ExtensionName == "Orchard.Module.SuperWiki");
Assert.That(installedPackage, Is.Not.Null);
Assert.That(installedPackage.ExtensionVersion, Is.EqualTo("1.0.2"));
Assert.That(recipeContext.Executed, Is.True);
}
internal class StubPackagingSourceManager : IPackagingSourceManager {

View File

@@ -0,0 +1,50 @@
using System.Xml.Linq;
using Autofac;
using NUnit.Framework;
using Orchard.Recipes.Models;
using Orchard.Recipes.Providers.RecipeHandlers;
using Orchard.Recipes.Services;
namespace Orchard.Tests.Modules.Recipes.RecipeHandlers {
[TestFixture]
public class RecipeExecutionStepHandlerTest {
protected IContainer _container;
[SetUp]
public void Init() {
var builder = new ContainerBuilder();
builder.RegisterType<StubRecipeExecutionStep>().As<IRecipeExecutionStep>().AsSelf().SingleInstance();
builder.RegisterType<RecipeExecutionStepHandler>().SingleInstance();
_container = builder.Build();
}
[Test]
public void ExecuteRecipeExecutionStepHandlerTest() {
var handlerUnderTest = _container.Resolve<RecipeExecutionStepHandler>();
var fakeRecipeStep = _container.Resolve<StubRecipeExecutionStep>();
var context = new RecipeContext {
RecipeStep = new RecipeStep { Name = "FakeRecipeStep", Step = new XElement("FakeRecipeStep")},
ExecutionId = "12345"
};
handlerUnderTest.ExecuteRecipeStep(context);
Assert.That(fakeRecipeStep.IsExecuted, Is.True);
Assert.That(context.Executed, Is.True);
}
}
public class StubRecipeExecutionStep : RecipeExecutionStep {
public override string Name {
get { return "FakeRecipeStep"; }
}
public bool IsExecuted { get; set; }
public override void Execute(RecipeExecutionContext context) {
IsExecuted = true;
}
}
}

View File

@@ -22,7 +22,6 @@ using Orchard.FileSystems.VirtualPath;
using Orchard.Packaging.GalleryServer;
using Orchard.Packaging.Services;
using Orchard.Recipes.Models;
using Orchard.Recipes.Services;
using Orchard.Tests.DisplayManagement.Descriptors;
using Orchard.Tests.Environment.Extensions;
using Orchard.Tests.Environment.Features;
@@ -33,7 +32,7 @@ using Orchard.Themes.Services;
namespace Orchard.Tests.Modules.Recipes.RecipeHandlers {
[TestFixture]
public class ThemeRecipeHandlerTest : DatabaseEnabledTestsBase {
public class ThemeStepTest : DatabaseEnabledTestsBase {
private ExtensionManagerTests.StubFolders _folders;
private ModuleStepTest.StubPackagingSourceManager _packagesInRepository;
private ModuleStepTest.StubPackageManager _packageManager;
@@ -95,35 +94,33 @@ Features:
});
IShellDescriptorManager shellDescriptorManager = _container.Resolve<IShellDescriptorManager>();
// No features enabled
// No features enabled.
shellDescriptorManager.UpdateShellDescriptor(0,
Enumerable.Empty<ShellFeature>(),
Enumerable.Empty<ShellParameter>());
var themeStep = _container.Resolve<ThemeStep>();
var recipeContext = new RecipeContext { RecipeStep = new RecipeStep { Name = "Theme", Step = new XElement("SuperWiki") } };
var recipeExecutionContext = new RecipeExecutionContext {RecipeStep = recipeContext.RecipeStep};
var recipeExecutionContext = new RecipeExecutionContext {RecipeStep = new RecipeStep { Name = "Theme", Step = new XElement("SuperWiki") } };
recipeContext.RecipeStep.Step.Add(new XAttribute("packageId", "Orchard.Theme.SuperWiki"));
recipeContext.RecipeStep.Step.Add(new XAttribute("repository", "test"));
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("packageId", "Orchard.Theme.SuperWiki"));
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("repository", "test"));
var featureManager = _container.Resolve<IFeatureManager>();
var enabledFeatures = featureManager.GetEnabledFeatures();
Assert.That(enabledFeatures.Count(), Is.EqualTo(0));
themeStep.Execute(recipeExecutionContext);
// without setting enable no feature should be activated...
// Without setting enable no feature should be activated...
featureManager.GetEnabledFeatures();
Assert.That(enabledFeatures.Count(), Is.EqualTo(0));
// Adding enable the feature should get active
recipeContext.RecipeStep.Step.Add(new XAttribute("enable", true));
// Adding enable the feature should get active.
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("enable", true));
themeStep.Execute(recipeExecutionContext);
enabledFeatures = featureManager.GetEnabledFeatures();
Assert.That(enabledFeatures.FirstOrDefault(feature => feature.Id.Equals("SuperWiki")), Is.Not.Null);
Assert.That(enabledFeatures.Count(), Is.EqualTo(1));
Assert.That(recipeContext.Executed, Is.True);
}
[Test]
@@ -138,10 +135,9 @@ Features:
");
var themeStep = _container.Resolve<ThemeStep>();
var recipeContext = new RecipeContext { RecipeStep = new RecipeStep { Name = "Theme", Step = new XElement("SuperWiki") } };
var recipeExecutionContext = new RecipeExecutionContext { RecipeStep = recipeContext.RecipeStep };
var recipeExecutionContext = new RecipeExecutionContext { RecipeStep = new RecipeStep { Name = "Theme", Step = new XElement("SuperWiki") } };
recipeContext.RecipeStep.Step.Add(new XAttribute("repository", "test"));
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("repository", "test"));
Assert.Throws(typeof (InvalidOperationException), () => themeStep.Execute(recipeExecutionContext));
}
@@ -163,19 +159,17 @@ Features:
});
var themeStep = _container.Resolve<ThemeStep>();
var recipeContext = new RecipeContext { RecipeStep = new RecipeStep { Name = "Theme", Step = new XElement("SuperWiki") } };
var recipeExecutionContext = new RecipeExecutionContext { RecipeStep = recipeContext.RecipeStep };
var recipeExecutionContext = new RecipeExecutionContext { RecipeStep = new RecipeStep { Name = "Theme", Step = new XElement("SuperWiki") } };
recipeContext.RecipeStep.Step.Add(new XAttribute("packageId", "Orchard.Theme.SuperWiki"));
recipeContext.RecipeStep.Step.Add(new XAttribute("repository", "test"));
recipeContext.RecipeStep.Step.Add(new XAttribute("version", "1.0.2"));
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("packageId", "Orchard.Theme.SuperWiki"));
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("repository", "test"));
recipeExecutionContext.RecipeStep.Step.Add(new XAttribute("version", "1.0.2"));
themeStep.Execute(recipeExecutionContext);
var installedPackage = _packageManager.GetInstalledPackages().FirstOrDefault(info => info.ExtensionName == "Orchard.Theme.SuperWiki");
Assert.That(installedPackage, Is.Not.Null);
Assert.That(installedPackage.ExtensionVersion, Is.EqualTo("1.0.2"));
Assert.That(recipeContext.Executed, Is.True);
}
internal class StubSiteThemeService : ISiteThemeService {