public void Test_PostCallback() { Injector injector = new Injector(); // Add first binding injector.AddBinding <SimpleClassA>().ToType <SimpleClassA>().SetPostInjectionCallback(Callback); injector.AddBinding <SimpleClassB>().ToValue(new SimpleClassB()); // Validate binding Assert.Equal(2, injector.BindingCount); Assert.True(injector.HasBindingForType(typeof(SimpleClassA))); Assert.True(injector.HasBindingForType(typeof(SimpleClassB))); // Check error Assert.Equal(0, injector.ErrorCount); // Set fields _IscallbackCalled = false; _CallbackCaller = null; // Get Instance SimpleClassA value = injector.GetInstance <SimpleClassA>(); // Check error Assert.Equal(0, injector.ErrorCount); // Validate binding Assert.True(_IscallbackCalled); Assert.Equal(value, _CallbackCaller); }
public void Test_ValueInjectionToNestedMembers() { Injector injector = new Injector(); // Add first binding SimpleClassA value = new SimpleClassA(); injector.AddBinding <SimpleClassA>().ToValue(value); // Create injection target ExtendedClassThatUses_SimpleClassA target = new ExtendedClassThatUses_SimpleClassA(); // Check before injection Assert.Null(target.value1); Assert.Null(target.value2); // Inject injector.InjectInto(target); // Check error Assert.Equal(0, injector.ErrorCount); // Check after injection Assert.NotNull(target.value1); Assert.NotNull(target.value2); Assert.Same(value, target.value1); Assert.Same(value, target.value2); }
public void Test_UnifyTypedProvidersWithSameType() { InjectorContext injector = new InjectorContext(); SimpleClassA value = new SimpleClassA(); // Add first binding injector.AddBinding <ISimpleInterfaceA>().ToValue(value); // Check bindings and providers Assert.Equal(1, injector.BindingCount); Assert.Equal(1, injector.ProviderCount); // Check errors Assert.Equal(0, injector.ErrorCount); // Add second binding to same value injector.AddBinding <ISimpleInterfaceAA>().ToValue(value); // Check bindings and providers Assert.Equal(2, injector.BindingCount); Assert.Equal(1, injector.ProviderCount); // Check errors Assert.Equal(0, injector.ErrorCount); // Add third binding to same value injector.AddBinding <SimpleClassA>().ToValue(value); // Check bindings and providers Assert.Equal(3, injector.BindingCount); Assert.Equal(1, injector.ProviderCount); // Check errors Assert.Equal(0, injector.ErrorCount); }
public void Test_ValueInjectionToAssignableType() { Injector injector = new Injector(); // Add first binding SimpleClassA value = new SimpleClassA(); injector.AddBinding <ISimpleInterfaceA>().ToValue(value); // Create injection target ClassThatUses_SimpleInterfaceA target = new ClassThatUses_SimpleInterfaceA(); // Check before injection Assert.Null(target.value); // Inject injector.InjectInto(target); // Check error Assert.Equal(0, injector.ErrorCount); // Check after injection Assert.NotNull(target.value); }
public ClassThatUses_SimpleClassA() { value2 = null; _value1 = null; }