|
|
|
|
@@ -56,7 +56,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
private static TypeLoader MockTypeLoader()
|
|
|
|
|
{
|
|
|
|
|
var ioHelper = TestHelper.IOHelper;
|
|
|
|
|
return new TypeLoader(Mock.Of<ITypeFinder>(), Mock.Of<IAppPolicyCache>(), new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), Mock.Of<IProfilingLogger>());
|
|
|
|
|
return new TypeLoader(Mock.Of<ITypeFinder>(), Mock.Of<IAppPolicyCache>(), new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), Mock.Of<ILogger<TypeLoader>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static IRuntimeState MockRuntimeState(RuntimeLevel level)
|
|
|
|
|
@@ -74,7 +74,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Unknown), TestHelper.GetConfigs(), TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = TypeArray<Composer1, Composer2, Composer3, Composer4>();
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
// 2 is Core and requires 4
|
|
|
|
|
// 3 is User - goes away with RuntimeLevel.Unknown
|
|
|
|
|
@@ -113,7 +113,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Run), TestHelper.GetConfigs(), TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = TypeArray<Composer1, Composer2, Composer3, Composer4>();
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
// 2 is Core and requires 4
|
|
|
|
|
// 3 is User - stays with RuntimeLevel.Run
|
|
|
|
|
@@ -129,7 +129,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Unknown), TestHelper.GetConfigs(), TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = TypeArray<Composer20, Composer21>();
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
// 21 is required by 20
|
|
|
|
|
// => reorder components accordingly
|
|
|
|
|
@@ -144,7 +144,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Unknown), TestHelper.GetConfigs(), TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = TypeArray<Composer22, Composer24, Composer25>();
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
// i23 requires 22
|
|
|
|
|
// 24, 25 implement i23
|
|
|
|
|
@@ -161,7 +161,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Unknown), TestHelper.GetConfigs(), TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = TypeArray<Composer1, Composer2, Composer3>();
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
@@ -184,7 +184,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Unknown), TestHelper.GetConfigs(), TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = TypeArray<Composer2, Composer4, Composer13>();
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
// 2 is Core and requires 4
|
|
|
|
|
// 13 is required by 1
|
|
|
|
|
@@ -220,7 +220,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Unknown), TestHelper.GetConfigs(), TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = new[] { typeof(Composer1), typeof(Composer5), typeof(Composer5a) };
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
|
|
|
|
|
Assert.IsEmpty(Composed);
|
|
|
|
|
composers.Compose();
|
|
|
|
|
@@ -246,7 +246,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Unknown), TestHelper.GetConfigs(), TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = new[] { typeof(Composer6), typeof(Composer7), typeof(Composer8) };
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
composers.Compose();
|
|
|
|
|
Assert.AreEqual(2, Composed.Count);
|
|
|
|
|
@@ -261,7 +261,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Unknown), Configs, TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = new[] { typeof(Composer9), typeof(Composer2), typeof(Composer4) };
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
composers.Compose();
|
|
|
|
|
Assert.AreEqual(2, Composed.Count);
|
|
|
|
|
@@ -279,7 +279,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Run), Configs, TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = new[] { typeof(Composer9), typeof(Composer2), typeof(Composer4) };
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
composers.Compose();
|
|
|
|
|
var builder = composition.WithCollectionBuilder<ComponentCollectionBuilder>();
|
|
|
|
|
@@ -298,32 +298,32 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Unknown), Configs, TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = new[] { typeof(Composer10) };
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
composers.Compose();
|
|
|
|
|
Assert.AreEqual(1, Composed.Count);
|
|
|
|
|
Assert.AreEqual(typeof(Composer10), Composed[0]);
|
|
|
|
|
|
|
|
|
|
types = new[] { typeof(Composer11) };
|
|
|
|
|
composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
Assert.Throws<Exception>(() => composers.Compose());
|
|
|
|
|
Console.WriteLine("throws:");
|
|
|
|
|
composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var requirements = composers.GetRequirements(false);
|
|
|
|
|
Console.WriteLine(Composers.GetComposersReport(requirements));
|
|
|
|
|
|
|
|
|
|
types = new[] { typeof(Composer2) };
|
|
|
|
|
composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
Assert.Throws<Exception>(() => composers.Compose());
|
|
|
|
|
Console.WriteLine("throws:");
|
|
|
|
|
composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
requirements = composers.GetRequirements(false);
|
|
|
|
|
Console.WriteLine(Composers.GetComposersReport(requirements));
|
|
|
|
|
|
|
|
|
|
types = new[] { typeof(Composer12) };
|
|
|
|
|
composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
composers.Compose();
|
|
|
|
|
Assert.AreEqual(1, Composed.Count);
|
|
|
|
|
@@ -337,7 +337,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
var composition = new Composition(register, MockTypeLoader(), Mock.Of<IProfilingLogger>(), MockRuntimeState(RuntimeLevel.Unknown), Configs, TestHelper.IOHelper, AppCaches.NoCache);
|
|
|
|
|
|
|
|
|
|
var types = new[] { typeof(Composer6), typeof(Composer8) }; // 8 disables 7 which is not in the list
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
composers.Compose();
|
|
|
|
|
Assert.AreEqual(2, Composed.Count);
|
|
|
|
|
@@ -353,13 +353,13 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
|
|
|
|
|
var types = new[] { typeof(Composer26) };
|
|
|
|
|
var enableDisableAttributes = new[] { new DisableComposerAttribute(typeof(Composer26)) };
|
|
|
|
|
var composers = new Composers(composition, types, enableDisableAttributes, Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, enableDisableAttributes, Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
composers.Compose();
|
|
|
|
|
Assert.AreEqual(0, Composed.Count); // 26 gone
|
|
|
|
|
|
|
|
|
|
types = new[] { typeof(Composer26), typeof(Composer27) }; // 26 disabled by assembly attribute, enabled by 27
|
|
|
|
|
composers = new Composers(composition, types, enableDisableAttributes, Mock.Of<IProfilingLogger>());
|
|
|
|
|
composers = new Composers(composition, types, enableDisableAttributes, Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
Composed.Clear();
|
|
|
|
|
composers.Compose();
|
|
|
|
|
Assert.AreEqual(2, Composed.Count); // both
|
|
|
|
|
@@ -372,7 +372,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
{
|
|
|
|
|
var ioHelper = TestHelper.IOHelper;
|
|
|
|
|
var typeFinder = TestHelper.GetTypeFinder();
|
|
|
|
|
var typeLoader = new TypeLoader(typeFinder, AppCaches.Disabled.RuntimeCache, new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var typeLoader = new TypeLoader(typeFinder, AppCaches.Disabled.RuntimeCache, new DirectoryInfo(ioHelper.MapPath("~/App_Data/TEMP")), Mock.Of<ILogger<TypeLoader>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
|
|
|
|
|
var register = MockRegister();
|
|
|
|
|
var composition = new Composition(register, typeLoader, Mock.Of<IProfilingLogger>(),
|
|
|
|
|
@@ -380,7 +380,7 @@ namespace Umbraco.Tests.Components
|
|
|
|
|
|
|
|
|
|
var allComposers = typeLoader.GetTypes<IComposer>().ToList();
|
|
|
|
|
var types = allComposers.Where(x => x.FullName.StartsWith("Umbraco.Core.") || x.FullName.StartsWith("Umbraco.Web")).ToList();
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var composers = new Composers(composition, types, Enumerable.Empty<Attribute>(), Mock.Of<ILogger<Composers>>(), Mock.Of<IProfilingLogger>());
|
|
|
|
|
var requirements = composers.GetRequirements();
|
|
|
|
|
var report = Composers.GetComposersReport(requirements);
|
|
|
|
|
Console.WriteLine(report);
|
|
|
|
|
|