public void TestPostConstruct() { var injector = new Injector(); var testClass = new TestClass(); var otherTestClass = new TestClassFromInterface(); injector.Bind <TestClass>(testClass); injector.Bind <ITestInterface>(otherTestClass); var injectingClass = new TestInjectingClass(); injector.Bind <TestInjectingClass>(injectingClass); injector.PostBindings(); Assert.IsTrue(injectingClass.PostConstructExecuted, "PostConstruct method should be executed"); }
public void TestInject() { var injector = new Injector(); var testClass = new TestClass(); var otherTestClass = new TestClassFromInterface(); injector.Bind <TestClass>(testClass); injector.Bind <ITestInterface>(otherTestClass); var injectingClass = new TestInjectingClass(); injector.Inject(injectingClass); Assert.AreEqual(testClass, injectingClass.GetTestClass(), "instance should be injected"); Assert.AreEqual(otherTestClass, injectingClass.GetOtherTestClass(), "instance should be injected"); }
public void TestPostBindings() { var injector = new Injector(); var testClass = new TestClass(); var otherTestClass = new TestClassFromInterface(); injector.Bind <TestClass>(testClass); injector.Bind <ITestInterface>(otherTestClass); var injectingClass = new TestInjectingClass(); injector.Bind <TestInjectingClass>(injectingClass); injector.PostBindings(); Assert.AreEqual(injectingClass, injector.GetInstance <TestInjectingClass>(), "should return bound instance"); Assert.AreEqual(testClass, injectingClass.GetTestClass(), "instance should be injected"); Assert.AreEqual(otherTestClass, injectingClass.GetOtherTestClass(), "instance should be injected"); }