From 98e6ae9c76a790049972f6f6023ad95e04b438b2 Mon Sep 17 00:00:00 2001 From: Renaud Paquay Date: Wed, 19 May 2010 13:42:01 -0700 Subject: [PATCH] Fix unit tests --HG-- branch : dev --- .../Extensions/ExtensionFoldersTests.cs | 6 ++-- .../Extensions/ExtensionManagerTests.cs | 34 ++++++------------ .../Extensions/Folders/ExtensionFolders.cs | 36 +++++-------------- .../Extensions/Folders/IExtensionFolders.cs | 2 -- 4 files changed, 22 insertions(+), 56 deletions(-) diff --git a/src/Orchard.Tests/Environment/Extensions/ExtensionFoldersTests.cs b/src/Orchard.Tests/Environment/Extensions/ExtensionFoldersTests.cs index 929538161..2983743f5 100644 --- a/src/Orchard.Tests/Environment/Extensions/ExtensionFoldersTests.cs +++ b/src/Orchard.Tests/Environment/Extensions/ExtensionFoldersTests.cs @@ -54,8 +54,8 @@ namespace Orchard.Tests.Environment.Extensions { [Test] public void NamesFromFoldersWithModuleTxtShouldBeListed() { - var folders = new ModuleFolders(new[] { _tempFolderName },null,null); - var names = folders.ListNames(); + IExtensionFolders folders = new ModuleFolders(new[] { _tempFolderName }, null, null); + var names = folders.AvailableExtensions().Select(d => d.Name); Assert.That(names.Count(), Is.EqualTo(2)); Assert.That(names, Has.Some.EqualTo("Sample1")); Assert.That(names, Has.Some.EqualTo("Sample3")); @@ -63,7 +63,7 @@ namespace Orchard.Tests.Environment.Extensions { [Test] public void ModuleTxtShouldBeParsedAndReturnedAsYamlDocument() { - var folders = new ModuleFolders(new[] { _tempFolderName }, new StubCacheManager(), new StubWebSiteFolder()); + IExtensionFolders folders = new ModuleFolders(new[] { _tempFolderName }, new StubCacheManager(), new StubWebSiteFolder()); var sample1 = folders.AvailableExtensions().Single(d => d.Name == "Sample1"); Assert.That(sample1.Name, Is.Not.Empty); Assert.That(sample1.Author, Is.EqualTo("Bertrand Le Roy")); diff --git a/src/Orchard.Tests/Environment/Extensions/ExtensionManagerTests.cs b/src/Orchard.Tests/Environment/Extensions/ExtensionManagerTests.cs index 5852c1028..2e4601202 100644 --- a/src/Orchard.Tests/Environment/Extensions/ExtensionManagerTests.cs +++ b/src/Orchard.Tests/Environment/Extensions/ExtensionManagerTests.cs @@ -34,26 +34,12 @@ namespace Orchard.Tests.Environment.Extensions { public IDictionary Manifests { get; set; } - public IEnumerable ListNames() { - return Manifests.Keys; - } - - public ParseResult ParseManifest(string name) { - var parser = new YamlParser(); - bool success; - var stream = parser.ParseYamlStream(new TextInput(Manifests[name]), out success); - if (success) { - return new ParseResult { - Location = "~/InMemory", - Name = name, - YamlDocument = stream.Documents.Single() - }; - } - return null; - } - public IEnumerable AvailableExtensions() { - throw new NotImplementedException(); + foreach(var e in Manifests) { + string name = e.Key; + var parseResult = ExtensionFolders.ParseManifest(Manifests[name]); + yield return ExtensionFolders.GetDescriptorForExtension("~/", name, "InMemory", parseResult); + } } } @@ -218,7 +204,7 @@ features: Description: Contains the Phi type. "); - ExtensionManager extensionManager = new ExtensionManager(new[] { extensionFolder }, new[] { extensionLoader }); + IExtensionManager extensionManager = new ExtensionManager(new[] { extensionFolder }, new[] { extensionLoader }); var testFeature = extensionManager.AvailableExtensions() .SelectMany(x => x.Features); @@ -244,7 +230,7 @@ features: Description: Contains the Phi type. "); - ExtensionManager extensionManager = new ExtensionManager(new[] { extensionFolder }, new[] { extensionLoader }); + IExtensionManager extensionManager = new ExtensionManager(new[] { extensionFolder }, new[] { extensionLoader }); var testFeature = extensionManager.AvailableExtensions() .SelectMany(x => x.Features); @@ -301,7 +287,7 @@ features: Description: Contains the Phi type. "); - ExtensionManager extensionManager = new ExtensionManager(new[] { extensionFolder }, new[] { extensionLoader }); + IExtensionManager extensionManager = new ExtensionManager(new[] { extensionFolder }, new[] { extensionLoader }); var testFeature = extensionManager.AvailableExtensions() .SelectMany(x => x.Features) .Single(x => x.Name == "TestFeature"); @@ -329,7 +315,7 @@ features: Description: Contains the Phi type. "); - ExtensionManager extensionManager = new ExtensionManager(new[] { extensionFolder }, new[] { extensionLoader }); + IExtensionManager extensionManager = new ExtensionManager(new[] { extensionFolder }, new[] { extensionLoader }); var testModule = extensionManager.AvailableExtensions() .SelectMany(x => x.Features) .Single(x => x.Name == "TestModule"); @@ -353,7 +339,7 @@ version: 1.0.3 orchardversion: 1 "); - ExtensionManager extensionManager = new ExtensionManager(new[] { extensionFolder }, new[] { extensionLoader }); + IExtensionManager extensionManager = new ExtensionManager(new[] { extensionFolder }, new[] { extensionLoader }); var minimalisticModule = extensionManager.AvailableExtensions().Single(x => x.Name == "Minimalistic"); Assert.That(minimalisticModule.Features.Count(), Is.EqualTo(1)); diff --git a/src/Orchard/Environment/Extensions/Folders/ExtensionFolders.cs b/src/Orchard/Environment/Extensions/Folders/ExtensionFolders.cs index 3f2203a19..c8dd79a7e 100644 --- a/src/Orchard/Environment/Extensions/Folders/ExtensionFolders.cs +++ b/src/Orchard/Environment/Extensions/Folders/ExtensionFolders.cs @@ -2,9 +2,7 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Web.Hosting; using Orchard.Caching; -using Orchard.Environment.Extensions.Helpers; using Orchard.Environment.Extensions.Models; using Orchard.FileSystems.WebSite; using Yaml.Grammar; @@ -56,7 +54,7 @@ namespace Orchard.Environment.Extensions.Folders { return list; } - ExtensionDescriptor GetExtensionDescriptor(string locationPath, string extensionName, string manifestPath) { + private ExtensionDescriptor GetExtensionDescriptor(string locationPath, string extensionName, string manifestPath) { return _cacheManager.Get(manifestPath, context => { context.Monitor(_webSiteFolder.WhenPathChanges(manifestPath)); @@ -75,20 +73,11 @@ namespace Orchard.Environment.Extensions.Folders { }); } - public IEnumerable ListNames() { - foreach (var path in _paths) { - if (!Directory.Exists(PathHelpers.GetPhysicalPath(path))) - continue; - - foreach (var directoryName in Directory.GetDirectories(PathHelpers.GetPhysicalPath(path))) { - if (_manifestIsOptional || File.Exists(Path.Combine(directoryName, _manifestName))) { - yield return Path.GetFileName(directoryName); - } - } - } + private ExtensionDescriptor GetDescriptorForExtension(string locationPath, string extensionName, ParseResult parseResult) { + return GetDescriptorForExtension(locationPath, extensionName, _extensionType, parseResult); } - public ParseResult ParseManifest(string manifestText) { + public static ParseResult ParseManifest(string manifestText) { bool success; var yamlStream = new YamlParser().ParseYamlStream(new TextInput(manifestText), out success); if (yamlStream == null || !success) { @@ -100,8 +89,7 @@ namespace Orchard.Environment.Extensions.Folders { }; } - - private ExtensionDescriptor GetDescriptorForExtension(string locationPath, string extensionName, ParseResult parseResult) { + public static ExtensionDescriptor GetDescriptorForExtension(string locationPath, string extensionName, string extensionType, ParseResult parseResult) { var mapping = (Mapping)parseResult.YamlDocument.Root; var fields = mapping.Entities .Where(x => x.Key is Scalar) @@ -110,7 +98,7 @@ namespace Orchard.Environment.Extensions.Folders { var extensionDescriptor = new ExtensionDescriptor { Location = locationPath, Name = extensionName, - ExtensionType = _extensionType, + ExtensionType = extensionType, DisplayName = GetValue(fields, "name") ?? extensionName, Description = GetValue(fields, "description"), Version = GetValue(fields, "version"), @@ -158,25 +146,19 @@ namespace Orchard.Environment.Extensions.Folders { } private static string[] ParseFeatureDependenciesEntry(string dependenciesEntry) { - List dependencies = new List(); + var dependencies = new List(); foreach (var s in dependenciesEntry.Split(',')) { dependencies.Add(s.Trim()); } return dependencies.ToArray(); } - private static Mapping GetMapping( - IDictionary fields, - string key) { - + private static Mapping GetMapping(IDictionary fields, string key) { DataItem value; return fields.TryGetValue(key, out value) ? (Mapping)value : null; } - private static string GetValue( - IDictionary fields, - string key) { - + private static string GetValue(IDictionary fields, string key) { DataItem value; return fields.TryGetValue(key, out value) ? value.ToString() : null; } diff --git a/src/Orchard/Environment/Extensions/Folders/IExtensionFolders.cs b/src/Orchard/Environment/Extensions/Folders/IExtensionFolders.cs index 527a3a024..94612540a 100644 --- a/src/Orchard/Environment/Extensions/Folders/IExtensionFolders.cs +++ b/src/Orchard/Environment/Extensions/Folders/IExtensionFolders.cs @@ -6,6 +6,4 @@ namespace Orchard.Environment.Extensions.Folders { public interface IExtensionFolders { IEnumerable AvailableExtensions(); } - - } \ No newline at end of file