public void CreateTypeForComplexInterface() { Type iClass = DynamicTypeGenerator.GetTypeForInterface(typeof(IComplexInterface)); IComplexInterface instance = (IComplexInterface)Activator.CreateInstance(iClass); instance.ShouldNotBeNull(); instance.Id = 42; instance.Foo = new Foo(); instance.NullableInt = 123; instance.Name = "Lorem ipsum"; instance.Ints = new List <int>(); instance.IntArray = new int[2]; instance.Foos = new List <Foo>(); instance.FooArray = new Foo[2]; instance.Id.ShouldBe(42); instance.Foo.ShouldNotBeNull(); instance.NullableInt.ShouldBe(123); instance.Name.ShouldBe("Lorem ipsum"); int i = 0; string s = null; Should.Throw <NotImplementedException>(() => instance.BaseMethod(), "Call BaseMethod."); Should.Throw <NotImplementedException>(() => instance.SimpleMethod(), "Call SimpleMethod."); Should.Throw <NotImplementedException>(() => instance.ComplexMethod(123, ref i, out s), "Call ComplexMethod."); }
public MultipleConstructorParamsClass(ISimpleInterface simple, IComplexInterface complex) { Complex = complex; Simple = simple; }
public void MapToComplexInterface() { var subItem = new ComplexDto { Name = "Inner lrem ipsum", Int32 = 420, Int64 = long.MaxValue, NullInt1 = null, NullInt2 = 240, Floatn = 2.2F, Doublen = 4.4, DateTime = new DateTime(1978, 12, 10), SubItem = null, Dtos = new List <ComplexDto>(), DtoArr = null, Ints = new List <int>(), IntArr = null }; var dto = new ComplexDto { Name = "Lorem ipsum", Int32 = 42, Int64 = long.MaxValue, NullInt1 = null, NullInt2 = 24, Floatn = 1.2F, Doublen = 2.4, DateTime = new DateTime(1978, 12, 10), SubItem = subItem, Dtos = new List <ComplexDto>(new[] { subItem, null }), DtoArr = new ComplexDto[] { null, subItem }, Ints = new List <int>(new[] { 1, 2 }), IntArr = new[] { 3, 4 } }; IComplexInterface idto = dto.Adapt <IComplexInterface>(); idto.ShouldNotBeNull(); idto.ShouldSatisfyAllConditions( () => idto.Name.ShouldBe(dto.Name), () => idto.Int32.ShouldBe(dto.Int32), () => idto.Int64.ShouldBe(dto.Int64), () => idto.NullInt1.ShouldBeNull(), () => idto.NullInt2.ShouldBe(dto.NullInt2), () => idto.Floatn.ShouldBe(dto.Floatn), () => idto.Doublen.ShouldBe(dto.Doublen), () => idto.DateTime.ShouldBe(dto.DateTime) ); idto.SubItem.ShouldSatisfyAllConditions( () => idto.SubItem.Name.ShouldBe(dto.SubItem.Name), () => idto.SubItem.Int32.ShouldBe(dto.SubItem.Int32), () => idto.SubItem.Int64.ShouldBe(dto.SubItem.Int64), () => idto.SubItem.NullInt1.ShouldBeNull(), () => idto.SubItem.NullInt2.ShouldBe(dto.SubItem.NullInt2), () => idto.SubItem.Floatn.ShouldBe(dto.SubItem.Floatn), () => idto.SubItem.Doublen.ShouldBe(dto.SubItem.Doublen), () => idto.SubItem.DateTime.ShouldBe(dto.SubItem.DateTime) ); idto.ShouldSatisfyAllConditions( () => idto.Dtos.Count().ShouldBe(dto.Dtos.Count()), () => idto.DtoArr.Length.ShouldBe(dto.DtoArr.Length), () => idto.Ints.First().ShouldBe(dto.Ints.First()), () => idto.Ints.Last().ShouldBe(dto.Ints.Last()), () => idto.IntArr[0].ShouldBe(dto.IntArr[0]), () => idto.IntArr[1].ShouldBe(dto.IntArr[1]) ); }
public ComplexObjectWithInterfaceDependencies(ISimpleInterface simpleInterface, IComplexInterface complexInterface) { Id = Guid.NewGuid(); SimpleInterface = simpleInterface; ComplexInterface = complexInterface; }