public void TestSupplyOverridesName() { binder.Bind <ClassToBeInjected> ().To <ClassToBeInjected> ().SupplyTo <HasANamedInjection> (); binder.Bind <ClassToBeInjected> ().To <ClassToBeInjected> ().ToName("CapnJack").SupplyTo <HasANamedInjection2> (); binder.Bind <HasANamedInjection>().To <HasANamedInjection> (); binder.Bind <HasANamedInjection2>().To <HasANamedInjection2> (); HasANamedInjection instance = binder.GetInstance <HasANamedInjection> (); Assert.IsInstanceOf <ClassToBeInjected> (instance.injected); HasANamedInjection2 instance2 = binder.GetInstance <HasANamedInjection2> (); Assert.IsInstanceOf <ClassToBeInjected> (instance2.injected); }
public void TestChainedSupplyBinding() { binder.Bind <ClassToBeInjected>().To <ExtendsClassToBeInjected>() .SupplyTo <HasANamedInjection> () .SupplyTo <ConstructorInjectsClassToBeInjected>() .SupplyTo <InjectsClassToBeInjected>(); binder.Bind <HasANamedInjection>().To <HasANamedInjection> (); binder.Bind <ConstructorInjectsClassToBeInjected>().To <ConstructorInjectsClassToBeInjected> (); binder.Bind <InjectsClassToBeInjected>().To <InjectsClassToBeInjected> (); HasANamedInjection instance = binder.GetInstance <HasANamedInjection> (); ConstructorInjectsClassToBeInjected instance2 = binder.GetInstance <ConstructorInjectsClassToBeInjected> (); InjectsClassToBeInjected instance3 = binder.GetInstance <InjectsClassToBeInjected> (); Assert.IsInstanceOf <ClassToBeInjected> (instance.injected); Assert.IsInstanceOf <ClassToBeInjected> (instance2.injected); Assert.IsInstanceOf <ClassToBeInjected> (instance3.injected); }
public void TestRuntimeSupplyBindingWithArray() { string jsonString = "[{\"Bind\":\"strange.unittests.ClassToBeInjected\",\"To\":\"strange.unittests.ExtendsClassToBeInjected\","; jsonString += "\"Options\": [\"ToSingleton\",{\"SupplyTo\": [\"strange.unittests.HasANamedInjection\",\"strange.unittests.ConstructorInjectsClassToBeInjected\",\"strange.unittests.InjectsClassToBeInjected\"]}]},"; jsonString += "{\"Bind\":\"strange.unittests.HasANamedInjection\",\"To\":\"strange.unittests.HasANamedInjection\"},"; jsonString += "{\"Bind\":\"strange.unittests.ConstructorInjectsClassToBeInjected\",\"To\":\"strange.unittests.ConstructorInjectsClassToBeInjected\"},"; jsonString += "{\"Bind\":\"strange.unittests.InjectsClassToBeInjected\",\"To\":\"strange.unittests.InjectsClassToBeInjected\"}]"; binder.ConsumeBindings(jsonString); HasANamedInjection instance = binder.GetInstance <HasANamedInjection> (); ConstructorInjectsClassToBeInjected instance2 = binder.GetInstance <ConstructorInjectsClassToBeInjected> (); InjectsClassToBeInjected instance3 = binder.GetInstance <InjectsClassToBeInjected> (); Assert.IsInstanceOf <ClassToBeInjected> (instance.injected); Assert.IsInstanceOf <ClassToBeInjected> (instance2.injected); Assert.IsInstanceOf <ClassToBeInjected> (instance3.injected); }
public void TestComplexSupplyBinding() { binder.Bind <ClassToBeInjected> ().To <ClassToBeInjected> ().ToName(SomeEnum.ONE); binder.Bind <ClassToBeInjected>().To <ExtendsClassToBeInjected>() .SupplyTo <HasANamedInjection> () .SupplyTo <ConstructorInjectsClassToBeInjected>(); binder.Bind <HasANamedInjection>().To <HasANamedInjection> (); binder.Bind <HasANamedInjection2>().To <HasANamedInjection2> (); binder.Bind <ConstructorInjectsClassToBeInjected>().To <ConstructorInjectsClassToBeInjected> (); HasANamedInjection instance = binder.GetInstance <HasANamedInjection> (); ConstructorInjectsClassToBeInjected instance2 = binder.GetInstance <ConstructorInjectsClassToBeInjected> (); HasANamedInjection2 instance3 = binder.GetInstance <HasANamedInjection2> (); Assert.IsInstanceOf <ExtendsClassToBeInjected> (instance.injected); Assert.IsInstanceOf <ExtendsClassToBeInjected> (instance2.injected); Assert.IsNotInstanceOf <ExtendsClassToBeInjected> (instance3.injected); binder.Unsupply <ClassToBeInjected, HasANamedInjection> (); HasANamedInjection instance4 = binder.GetInstance <HasANamedInjection> (); Assert.IsNotInstanceOf <ExtendsClassToBeInjected> (instance4.injected); }