using NUnit.Framework; using StyletIoC; using System.Linq; namespace StyletUnitTests.StyletIoC { [TestFixture] public class StyletIoCGetSingleKeyedTests { interface IC { } class C1 : IC { } class C2 : IC { } class C3 : IC { } [Inject("key1")] class C4 : IC { } [Test] public void GetReturnsKeyedType() { var builder = new StyletIoCBuilder(); builder.Bind().To().WithKey("key1"); builder.Bind().To().WithKey("key2"); var ioc = builder.BuildContainer(); Assert.IsInstanceOf(ioc.Get("key1")); Assert.IsInstanceOf(ioc.Get("key2")); } [Test] public void GetAllReturnsKeyedTypes() { var builder = new StyletIoCBuilder(); builder.Bind().To().WithKey("key1"); builder.Bind().To().WithKey("key1"); builder.Bind().To(); var ioc = builder.BuildContainer(); var results = ioc.GetAll("key1").ToList(); Assert.AreEqual(results.Count, 2); Assert.IsInstanceOf(results[0]); Assert.IsInstanceOf(results[1]); } [Test] public void AttributeIsUsed() { var builder = new StyletIoCBuilder(); builder.Bind().To(); builder.Bind().To(); var ioc = builder.BuildContainer(); Assert.IsInstanceOf(ioc.Get("key1")); } [Test] public void GivenKeyOverridesAttribute() { var builder = new StyletIoCBuilder(); builder.Bind().To(); builder.Bind().To().WithKey("key2"); var ioc = builder.BuildContainer(); Assert.IsInstanceOf(ioc.Get("key2")); } } }