public void Concrete_CustomMapping() { //Arrange IHaleyDIContainer _di = new DIContainer(); Person p1 = new Person() { name = "Senguttuvan" }; _di.Register <Person>(p1); string expected = "BhadriNarayanan"; //Act MappingProviderBase _mappingProvider = new MappingProviderBase(); _mappingProvider.Add <Person>(null, new Person() { name = expected }); var transient_actual = _di.ResolveTransient <Person>(_mappingProvider, MappingLevel.Current).name; var asregistered_actual = _di.Resolve <Person>(_mappingProvider).name; var asregistered_forced = _di.Resolve <Person>(_mappingProvider, currentOnlyAsTransient: true).name; //Assert Assert.Equal(expected, transient_actual); Assert.Equal(expected, asregistered_actual); Assert.Null(asregistered_forced); //Because, we force creation, so name will be null }
public void TypeMapping__IMapping_Resolve() { //Arrange IHaleyDIContainer _di = new DIContainer(); string power = "Money"; MappingProviderBase _mpb = new MappingProviderBase(); _mpb.Add <string>(nameof(SuperHero.power), power, typeof(SuperHero), InjectionTarget.Property); //Act _di.Register <IPerson, SuperHero>(); var _shero = (SuperHero)_di.ResolveTransient <IPerson>(_mpb, MappingLevel.CurrentWithDependencies); //Assert Assert.Equal(power, _shero.power); }