public void ReturnSameInstanceWhenInstanceRegistered() { SimpleContainer c = new SimpleContainer(); IFoo foo1 = new Foo(); c.RegisterInstance <IFoo>(foo1); IFoo foo2 = c.Resolve <IFoo>(); IFoo foo3 = c.Resolve <IFoo>(); Assert.Equal(foo1, foo2); Assert.Equal(foo1, foo1); c.RegisterType <IBar, Bar>(false); IBar b1 = c.Resolve <IBar>(); IBar b2 = new Bar(); c.RegisterInstance <IBar>(b2); IBar b3 = c.Resolve <IBar>(); Assert.NotEqual(b1, b3); Assert.Equal(typeof(Bar), b1.GetType()); c.RegisterType <IBar, BarNew>(false); IBar b4 = c.Resolve <IBar>(); Assert.Equal(typeof(BarNew), b4.GetType()); }
public void ChooseConstructorWithLongestParamatereList() { SimpleContainer c = new SimpleContainer(); c.RegisterType <IBar, Bar>(false); IBar b1 = c.Resolve <IBar>(); Assert.Equal(typeof(Bar), b1.GetType()); Assert.Equal(1, b1.getA()); Assert.Equal(1, b1.getB()); }
private static async Task<object> CallGetByReflection(IFoo foo, IBar bar) { var method = typeof(IFoo).GetMethod(nameof(IFoo.Get)); var generic = method.MakeGenericMethod(bar.GetType()); var task = (Task) generic.Invoke(foo, new[] {bar}); await task.ConfigureAwait(false); var resultProperty = task.GetType().GetProperty("Result")); return resultProperty.GetValue(task); }
public void DependencyCreationTest() { DependencyConfiguration configuration = new DependencyConfiguration(); configuration.Register <IBar, BarFromABar>(false); DependencyProvider provider = new DependencyProvider(configuration); IBar bar = provider.Resolve <IBar>(); Assert.IsNotNull(bar); Assert.AreEqual(bar.GetType(), typeof(BarFromABar)); }
public void ReturnOverwritedRegister() { SimpleContainer c = new SimpleContainer(); c.RegisterType <IBar, Bar>(false); IBar b1 = c.Resolve <IBar>(); Assert.Equal(typeof(Bar), b1.GetType()); c.RegisterType <IBar, BarNew>(false); IBar b2 = c.Resolve <IBar>(); Assert.Equal(typeof(BarNew), b2.GetType()); }