示例#1
0
        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;
 }
示例#3
0
        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])
                );
        }
示例#4
0
 public ComplexObjectWithInterfaceDependencies(ISimpleInterface simpleInterface, IComplexInterface complexInterface)
 {
     Id = Guid.NewGuid();
     SimpleInterface = simpleInterface;
     ComplexInterface = complexInterface;
 }