Fix unit tests

--HG--
branch : dev
This commit is contained in:
Renaud Paquay
2010-05-19 13:42:01 -07:00
parent 0ee8910417
commit 98e6ae9c76
4 changed files with 22 additions and 56 deletions

View File

@@ -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"));

View File

@@ -34,26 +34,12 @@ namespace Orchard.Tests.Environment.Extensions {
public IDictionary<string, string> Manifests { get; set; }
public IEnumerable<string> 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<ExtensionDescriptor> 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));

View File

@@ -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<string> 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<string> dependencies = new List<string>();
var dependencies = new List<string>();
foreach (var s in dependenciesEntry.Split(',')) {
dependencies.Add(s.Trim());
}
return dependencies.ToArray();
}
private static Mapping GetMapping(
IDictionary<string, DataItem> fields,
string key) {
private static Mapping GetMapping(IDictionary<string, DataItem> fields, string key) {
DataItem value;
return fields.TryGetValue(key, out value) ? (Mapping)value : null;
}
private static string GetValue(
IDictionary<string, DataItem> fields,
string key) {
private static string GetValue(IDictionary<string, DataItem> fields, string key) {
DataItem value;
return fields.TryGetValue(key, out value) ? value.ToString() : null;
}

View File

@@ -6,6 +6,4 @@ namespace Orchard.Environment.Extensions.Folders {
public interface IExtensionFolders {
IEnumerable<ExtensionDescriptor> AvailableExtensions();
}
}