Fixing OrchardHost unit tests

This commit is contained in:
Sebastien Ros
2015-09-04 15:53:11 -07:00
parent cb25be4444
commit 3f8e063d9c
2 changed files with 11 additions and 1 deletions

View File

@@ -95,6 +95,10 @@ namespace Orchard.Tests.Environment {
var ext = new ExtensionDescriptor { Id = "Orchard.Framework" };
ext.Features = new[] { new FeatureDescriptor { Extension = ext, Id = ext.Id } };
yield return ext;
var settings = new ExtensionDescriptor { Id = "Settings" };
settings.Features = new[] { new FeatureDescriptor { Extension = settings, Id = settings.Id } };
yield return settings;
}
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
@@ -177,6 +181,7 @@ namespace Orchard.Tests.Environment {
Assert.That(again2a, Is.SameAs(dep2a));
Assert.That(again2b, Is.SameAs(dep2b));
}
[Test]
public void SingletonDependenciesShouldBeUniquePerShell() {
var host = _lifetime.Resolve<IOrchardHost>();
@@ -200,6 +205,7 @@ namespace Orchard.Tests.Environment {
Assert.That(dep2, Is.SameAs(dep2a));
Assert.That(dep2, Is.SameAs(dep2b));
}
[Test]
public void TransientDependenciesShouldBeUniquePerResolve() {
var host = _lifetime.Resolve<IOrchardHost>();

View File

@@ -34,7 +34,11 @@ namespace Orchard.Environment.ShellBuilders {
var builtinFeatures = BuiltinFeatures().ToList();
var builtinFeatureDescriptors = builtinFeatures.Select(x => x.Descriptor).ToList();
var availableFeatures = _extensionManager.AvailableFeatures().Concat(builtinFeatureDescriptors).ToDictionary(x => x.Id, StringComparer.OrdinalIgnoreCase);
var availableFeatures = _extensionManager.AvailableFeatures()
.Concat(builtinFeatureDescriptors)
.GroupBy(x => x.Id.ToLowerInvariant()) // prevent duplicates
.Select(x => x.FirstOrDefault())
.ToDictionary(x => x.Id, StringComparer.OrdinalIgnoreCase);
var enabledFeatures = _extensionManager.EnabledFeatures(descriptor).Select(x => x.Id).ToList();
var expandedFeatures = ExpandDependencies(availableFeatures, descriptor.Features.Select(x => x.Name)).ToList();
var autoEnabledDependencyFeatures = expandedFeatures.Except(enabledFeatures).Except(builtinFeatureDescriptors.Select(x => x.Id)).ToList();