diff --git a/Stylet/StyletIoC/Internal/Container.cs b/Stylet/StyletIoC/Internal/Container.cs index b795eed..6c5fb15 100644 --- a/Stylet/StyletIoC/Internal/Container.cs +++ b/Stylet/StyletIoC/Internal/Container.cs @@ -338,7 +338,7 @@ namespace StyletIoC.Internal } else { - // This will throw a StyletIoCRegistrationException is GetSingle is requested + // This will throw a StyletIoCRegistrationException if GetSingle is requested registrations = new EmptyRegistrationCollection(typeKey.Type); } } diff --git a/StyletUnitTests/StyletIoC/StyletIoCFactoryTests.cs b/StyletUnitTests/StyletIoC/StyletIoCFactoryTests.cs index d018dfb..4eb9139 100644 --- a/StyletUnitTests/StyletIoC/StyletIoCFactoryTests.cs +++ b/StyletUnitTests/StyletIoC/StyletIoCFactoryTests.cs @@ -139,7 +139,7 @@ namespace StyletUnitTests public void ThrowsIfServiceTypeIsNotInterface() { var builder = new StyletIoCBuilder(); - builder.Bind().ToAbstractFactory(); + builder.Bind().ToAbstractFactory(); Assert.Throws(() => builder.BuildContainer()); } diff --git a/StyletUnitTests/StyletIoC/StyletIoCFuncFactoryTests.cs b/StyletUnitTests/StyletIoC/StyletIoCFuncFactoryTests.cs index 78a662b..336df0e 100644 --- a/StyletUnitTests/StyletIoC/StyletIoCFuncFactoryTests.cs +++ b/StyletUnitTests/StyletIoC/StyletIoCFuncFactoryTests.cs @@ -20,10 +20,15 @@ namespace StyletUnitTests this.C1Func = c1Func; } } - private interface I1 { } + public interface I1 { } private class C11 : I1 { } private class C12 : I1 { } + public interface I1Factory + { + I1 GetI1(); + } + [Test] public void FuncFactoryWorksForGetNoKey() { @@ -101,5 +106,19 @@ namespace StyletUnitTests Assert.IsInstanceOf(funcCollection[0]()); Assert.IsInstanceOf(funcCollection[1]()); } + + [Test] + public void FuncFactoryOfAbstractFactoryWorksAsExpected() + { + var builder = new StyletIoCBuilder(); + builder.Bind().To(); + builder.Bind().ToAbstractFactory(); + var ioc = builder.BuildContainer(); + + var func = ioc.Get>(); + Assert.IsNotNull(func); + var i1 = func().GetI1(); + Assert.IsInstanceOf(i1); + } } }