diff --git a/tests/Prism.Container.Extensions.Shared.Tests/Mocks/GenericService.cs b/tests/Prism.Container.Extensions.Shared.Tests/Mocks/GenericService.cs index a1ced27..3f4a63a 100644 --- a/tests/Prism.Container.Extensions.Shared.Tests/Mocks/GenericService.cs +++ b/tests/Prism.Container.Extensions.Shared.Tests/Mocks/GenericService.cs @@ -9,6 +9,11 @@ public class GenericService : IGenericService public string Name { get; set; } } + public class AltGenericService : IGenericService + { + public string Name { get; set; } + } + public interface IGenericService { string Name { get; } diff --git a/tests/Prism.DryIoc.Extensions.Tests/ContainerTests.cs b/tests/Prism.DryIoc.Extensions.Tests/ContainerTests.cs index 475a830..335fc33 100644 --- a/tests/Prism.DryIoc.Extensions.Tests/ContainerTests.cs +++ b/tests/Prism.DryIoc.Extensions.Tests/ContainerTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Linq; using Prism.Container.Extensions.Shared.Mocks; using Prism.Container.Extensions.Shared.Tests; using Prism.Container.Extensions.Tests.Mocks; @@ -414,6 +415,34 @@ public void ResolveNamedInstance() Assert.Same(genB, c.Resolve("genB")); } + [Fact] + public void ResolveTakesLastIn() + { + var c = CreateContainer(); + c.Register(); + c.Register(); + + Assert.IsType(c.Resolve()); + } + + [Fact] + public void ResolveEnumerableResolvesAll() + { + var c = CreateContainer(); + c.Register(); + c.Register(); + + IEnumerable all = null; + var ex = Record.Exception(() => all = c.Resolve>()); + + Assert.Null(ex); + Assert.NotNull(all); + Assert.NotEmpty(all); + Assert.Equal(2, all.Count()); + Assert.Contains(all, x => x is GenericService); + Assert.Contains(all, x => x is AltGenericService); + } + public static IFoo FooFactory() => new Foo { Message = "expected" }; public static IBar BarFactoryWithIContainerProvider(IContainerProvider containerProvider) => diff --git a/tests/Prism.Microsoft.DependencyInjection.Extensions.Tests/ContainerTests.cs b/tests/Prism.Microsoft.DependencyInjection.Extensions.Tests/ContainerTests.cs index 49a5d0a..b02b083 100644 --- a/tests/Prism.Microsoft.DependencyInjection.Extensions.Tests/ContainerTests.cs +++ b/tests/Prism.Microsoft.DependencyInjection.Extensions.Tests/ContainerTests.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Linq; using Microsoft.Extensions.DependencyInjection; using Prism.Container.Extensions.Shared.Mocks; using Prism.Container.Extensions.Shared.Tests; @@ -516,6 +517,34 @@ public void ResolveNamedInstance() } } + [Fact] + public void ResolveTakesLastIn() + { + var c = CreateContainer(); + c.Register(); + c.Register(); + + Assert.IsType(c.Resolve()); + } + + [Fact] + public void ResolveEnumerableResolvesAll() + { + var c = CreateContainer(); + c.Register(); + c.Register(); + + IEnumerable all = null; + var ex = Record.Exception(() => all = c.Resolve>()); + + Assert.Null(ex); + Assert.NotNull(all); + Assert.NotEmpty(all); + Assert.Equal(2, all.Count()); + Assert.Contains(all, x => x is GenericService); + Assert.Contains(all, x => x is AltGenericService); + } + public static IFoo FooFactory() => new Foo { Message = "expected" }; public static IBar BarFactoryWithIContainerProvider(IContainerProvider containerProvider) => diff --git a/tests/Prism.Unity.Extensions.Tests/ContainerTests.cs b/tests/Prism.Unity.Extensions.Tests/ContainerTests.cs index 6c2f30d..1c5b4fb 100644 --- a/tests/Prism.Unity.Extensions.Tests/ContainerTests.cs +++ b/tests/Prism.Unity.Extensions.Tests/ContainerTests.cs @@ -1,13 +1,14 @@ using System; using System.Collections.Generic; using System.Diagnostics; -using Unity; +using System.Linq; +using Prism.Container.Extensions.Shared.Mocks; +using Prism.Container.Extensions.Shared.Tests; using Prism.Container.Extensions.Tests.Mocks; using Prism.Ioc; +using Unity; using Xunit; using Xunit.Abstractions; -using Prism.Container.Extensions.Shared.Mocks; -using Prism.Container.Extensions.Shared.Tests; namespace Prism.Unity.Extensions.Tests { @@ -501,6 +502,34 @@ public void ResolveNamedInstance() } } + [Fact] + public void ResolveTakesLastIn() + { + var c = CreateContainer(); + c.Register(); + c.Register(); + + Assert.IsType(c.Resolve()); + } + + [Fact(Skip = "Not Supported on Unity")] + public void ResolveEnumerableResolvesAll() + { + var c = CreateContainer(); + c.Register(); + c.Register(); + + IEnumerable all = null; + var ex = Record.Exception(() => all = c.Resolve>()); + + Assert.Null(ex); + Assert.NotNull(all); + Assert.NotEmpty(all); + Assert.Equal(2, all.Count()); + Assert.Contains(all, x => x is GenericService); + Assert.Contains(all, x => x is AltGenericService); + } + public static IFoo FooFactory() => new Foo { Message = "expected" }; public static IBar BarFactoryWithIContainerProvider(IContainerProvider containerProvider) =>