mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Fix unit tests
--HG-- branch : dev
This commit is contained in:
@@ -207,29 +207,10 @@ namespace Orchard.Tests.Modules.Themes.Services {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<ExtensionDescriptor> EnabledExtensions(ShellDescriptor descriptor) {
|
|
||||||
var extensions = new[] {
|
|
||||||
new ExtensionDescriptor {Name = "ThemeOne", ExtensionType = "Theme"},
|
|
||||||
new ExtensionDescriptor {Name = "ThemeTwo", BaseTheme = "ThemeOne", ExtensionType = "Theme"},
|
|
||||||
new ExtensionDescriptor {Name = "ThemeThree", BaseTheme = "TheThemeThatIsntThere", ExtensionType = "Theme"},
|
|
||||||
new ExtensionDescriptor {Name = "ThemeFourBasedOnFive", BaseTheme = "ThemeFiveBasedOnFour", ExtensionType = "Theme"},
|
|
||||||
new ExtensionDescriptor {Name = "ThemeFiveBasedOnFour", BaseTheme = "ThemeFourBasedOnFive", ExtensionType = "Theme"},
|
|
||||||
};
|
|
||||||
|
|
||||||
foreach (var extension in extensions) {
|
|
||||||
extension.Features = new[] { new FeatureDescriptor { Extension = extension, Name = extension.Name } };
|
|
||||||
yield return extension;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
|
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
|
||||||
return AvailableExtensions().SelectMany(ed => ed.Features);
|
return AvailableExtensions().SelectMany(ed => ed.Features);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<FeatureDescriptor> EnabledFeatures(ShellDescriptor descriptor) {
|
|
||||||
return AvailableExtensions().SelectMany(ed => ed.Features);
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<Feature> LoadFeatures(IEnumerable<FeatureDescriptor> featureDescriptors) {
|
public IEnumerable<Feature> LoadFeatures(IEnumerable<FeatureDescriptor> featureDescriptors) {
|
||||||
return featureDescriptors.Select(FrameworkFeature);
|
return featureDescriptors.Select(FrameworkFeature);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -87,18 +87,10 @@ namespace Orchard.Tests.DisplayManagement.Descriptors {
|
|||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<ExtensionDescriptor> EnabledExtensions(ShellDescriptor descriptor) {
|
|
||||||
throw new NotSupportedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
|
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
|
||||||
return _availableFeautures;
|
return _availableFeautures;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<FeatureDescriptor> EnabledFeatures(ShellDescriptor descriptor) {
|
|
||||||
throw new NotSupportedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<Feature> LoadFeatures(IEnumerable<FeatureDescriptor> featureDescriptors) {
|
public IEnumerable<Feature> LoadFeatures(IEnumerable<FeatureDescriptor> featureDescriptors) {
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,19 +90,11 @@ namespace Orchard.Tests.Environment {
|
|||||||
yield return ext;
|
yield return ext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<ExtensionDescriptor> EnabledExtensions(ShellDescriptor descriptor) {
|
|
||||||
throw new NotSupportedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
|
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
|
||||||
// note - doesn't order properly
|
// note - doesn't order properly
|
||||||
return AvailableExtensions().SelectMany(ed => ed.Features);
|
return AvailableExtensions().SelectMany(ed => ed.Features);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<FeatureDescriptor> EnabledFeatures(ShellDescriptor descriptor) {
|
|
||||||
throw new NotSupportedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<Feature> LoadFeatures(IEnumerable<FeatureDescriptor> featureDescriptors) {
|
public IEnumerable<Feature> LoadFeatures(IEnumerable<FeatureDescriptor> featureDescriptors) {
|
||||||
foreach (var descriptor in featureDescriptors) {
|
foreach (var descriptor in featureDescriptors) {
|
||||||
if (descriptor.Name == "Orchard.Framework") {
|
if (descriptor.Name == "Orchard.Framework") {
|
||||||
|
|||||||
@@ -11,18 +11,10 @@ namespace Orchard.Tests.Stubs {
|
|||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<ExtensionDescriptor> EnabledExtensions(ShellDescriptor descriptor) {
|
|
||||||
throw new NotSupportedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
|
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<FeatureDescriptor> EnabledFeatures(ShellDescriptor descriptor) {
|
|
||||||
throw new NotSupportedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<Feature> LoadFeatures(IEnumerable<FeatureDescriptor> featureDescriptors) {
|
public IEnumerable<Feature> LoadFeatures(IEnumerable<FeatureDescriptor> featureDescriptors) {
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,30 +35,12 @@ namespace Orchard.Environment.Extensions {
|
|||||||
return _folders.SelectMany(folder => folder.AvailableExtensions());
|
return _folders.SelectMany(folder => folder.AvailableExtensions());
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<ExtensionDescriptor> EnabledExtensions(ShellDescriptor descriptor) {
|
|
||||||
var enabledFeatures = EnabledFeatures(descriptor);
|
|
||||||
return _folders.SelectMany(folder => folder.AvailableExtensions())
|
|
||||||
.Where(extensionDescriptor =>
|
|
||||||
extensionDescriptor.Features.Any(featureDescriptor =>
|
|
||||||
enabledFeatures.Any(availableFeature => featureDescriptor.Name == availableFeature.Name)));
|
|
||||||
}
|
|
||||||
|
|
||||||
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
|
public IEnumerable<FeatureDescriptor> AvailableFeatures() {
|
||||||
var featureDescriptors = AvailableExtensions().SelectMany(ext => ext.Features);
|
var featureDescriptors = AvailableExtensions().SelectMany(ext => ext.Features);
|
||||||
var featureDescriptorsOrdered = featureDescriptors.OrderByDependencies(HasDependency);
|
var featureDescriptorsOrdered = featureDescriptors.OrderByDependencies(HasDependency);
|
||||||
return featureDescriptorsOrdered.ToReadOnlyCollection();
|
return featureDescriptorsOrdered.ToReadOnlyCollection();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<FeatureDescriptor> EnabledFeatures(ShellDescriptor descriptor) {
|
|
||||||
return AvailableExtensions()
|
|
||||||
.SelectMany(extensionDescriptor => extensionDescriptor.Features)
|
|
||||||
.Where(featureDescriptor => IsFeatureEnabledInDescriptor(featureDescriptor, descriptor));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static bool IsFeatureEnabledInDescriptor(FeatureDescriptor featureDescriptor, ShellDescriptor shellDescriptor) {
|
|
||||||
return shellDescriptor.Features.Any(shellDescriptorFeature => shellDescriptorFeature.Name == featureDescriptor.Name);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns true if the item has an explicit or implicit dependency on the subject
|
/// Returns true if the item has an explicit or implicit dependency on the subject
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
using Orchard.Environment.Descriptor.Models;
|
using Orchard.Environment.Descriptor.Models;
|
||||||
using Orchard.Environment.Extensions.Models;
|
using Orchard.Environment.Extensions.Models;
|
||||||
@@ -6,12 +7,30 @@ using Orchard.Environment.Extensions.Models;
|
|||||||
namespace Orchard.Environment.Extensions {
|
namespace Orchard.Environment.Extensions {
|
||||||
public interface IExtensionManager {
|
public interface IExtensionManager {
|
||||||
IEnumerable<ExtensionDescriptor> AvailableExtensions();
|
IEnumerable<ExtensionDescriptor> AvailableExtensions();
|
||||||
IEnumerable<ExtensionDescriptor> EnabledExtensions(ShellDescriptor descriptor);
|
|
||||||
IEnumerable<FeatureDescriptor> AvailableFeatures();
|
IEnumerable<FeatureDescriptor> AvailableFeatures();
|
||||||
IEnumerable<FeatureDescriptor> EnabledFeatures(ShellDescriptor descriptor);
|
|
||||||
IEnumerable<Feature> LoadFeatures(IEnumerable<FeatureDescriptor> featureDescriptors);
|
IEnumerable<Feature> LoadFeatures(IEnumerable<FeatureDescriptor> featureDescriptors);
|
||||||
|
|
||||||
void InstallExtension(string extensionType, HttpPostedFileBase extensionBundle);
|
void InstallExtension(string extensionType, HttpPostedFileBase extensionBundle);
|
||||||
void UninstallExtension(string extensionType, string extensionName);
|
void UninstallExtension(string extensionType, string extensionName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class ExtensionManagerExtensions {
|
||||||
|
public static IEnumerable<ExtensionDescriptor> EnabledExtensions(this IExtensionManager extensionManager, ShellDescriptor descriptor) {
|
||||||
|
var enabledFeatures = EnabledFeatures(extensionManager, descriptor);
|
||||||
|
return extensionManager.AvailableExtensions()
|
||||||
|
.Where(extensionDescriptor =>
|
||||||
|
extensionDescriptor.Features.Any(featureDescriptor =>
|
||||||
|
enabledFeatures.Any(availableFeature => featureDescriptor.Name == availableFeature.Name)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<FeatureDescriptor> EnabledFeatures(this IExtensionManager extensionManager, ShellDescriptor descriptor) {
|
||||||
|
return extensionManager.AvailableExtensions()
|
||||||
|
.SelectMany(extensionDescriptor => extensionDescriptor.Features)
|
||||||
|
.Where(featureDescriptor => IsFeatureEnabledInDescriptor(featureDescriptor, descriptor));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool IsFeatureEnabledInDescriptor(FeatureDescriptor featureDescriptor, ShellDescriptor shellDescriptor) {
|
||||||
|
return shellDescriptor.Features.Any(shellDescriptorFeature => shellDescriptorFeature.Name == featureDescriptor.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user