public void BindWhenClassHas_DefaultAttributeCtor_TypesMatch() { // assemble var k = new MyTestKernel(); var root = k.Get <Conservatory>(); // act var artist = root.ArtistFactory(2); // assert Assert.IsInstanceOf <Actor>(artist); }
public void BindWhenClassHas_NonDefaultAttributeCtor_TypesMatch() { // assemble var k = new MyTestKernel(); var root = k.Get <Conservatory>(); // act var teacher = root.TeacherFactory("Dumbledore"); // assert Assert.IsInstanceOf <Professor>(teacher); }
public void MakeDynamicType_PassInAttrTypes_AttachesToClass() { // assemble var k = new MyTestKernel(); var attrTypes = new List <Type> { typeof(DulcetTonesAttribute) }; Type funcType = typeof(Func <int, Actor>); var dummyParamInfo = typeof(DummyClass).GetConstructors().First().GetParameters().First(); // act Type dynamicType = MyTypeBuilder.MakeDynamicType(funcType, attrTypes, dummyParamInfo); k.Bind(dynamicType).ToSelf(); var wrapperInstance = k.Get(dynamicType); var funcInstance = FuncValueGetter.GetFuncValue(wrapperInstance, dynamicType); MethodInfo mi = funcType.GetMethod(nameof(Func <int> .Invoke)); object result = mi.Invoke(funcInstance, new object[] { 2 }); // assert Assert.IsInstanceOf(typeof(Actor), result); }