Пример #1
0
        public void NullPropertyInfoNotAllowed()
        {
            var actual = Record.Exception(() => PocoValueFactory.FromEntityValue(null, new Value(), pocoFactory));

            Assert.IsType <ArgumentNullException>(actual);
            Assert.Equal($"Cannot extract the proper data from the Value without having the property{Environment.NewLine}Parameter name: prop", actual.Message);
        }
Пример #2
0
        public void NullValueNotAllowed()
        {
            var actual = Record.Exception(() => PocoValueFactory.FromEntityValue(poco.GetType().GetProperty("True"), null, pocoFactory));

            Assert.IsType <ArgumentNullException>(actual);
            Assert.Equal($"Cannot extract data from a null Value{Environment.NewLine}Parameter name: value", actual.Message);
        }
Пример #3
0
        public void ThrowOnUnsupportedTypes(string propertyName, System.Type type)
        {
            var actual = Record.Exception(() => PocoValueFactory.FromEntityValue(poco.GetType().GetProperty(propertyName), new Value(), pocoFactory));

            Assert.IsType <NotSupportedException>(actual);
            Assert.Equal($"The type {type.Name} is not supported", actual.Message);
        }
Пример #4
0
        public void BoolNullable_noValue()
        {
            var prop  = poco.GetType().GetProperty("BoolNullable");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.Null(actual);
        }
Пример #5
0
        public void Double()
        {
            var prop  = poco.GetType().GetProperty("Double");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <double>(actual);
            Assert.Equal(1.2, actual);
        }
Пример #6
0
        public void Enum()
        {
            var prop  = poco.GetType().GetProperty("Enum");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <DasPocoEnum>(actual);
            Assert.Equal(DasPocoEnum.Two, actual);
        }
Пример #7
0
        public void Char()
        {
            var prop  = poco.GetType().GetProperty("Char");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <char>(actual);
            Assert.Equal('c', actual);
        }
Пример #8
0
        public void Long()
        {
            var prop  = poco.GetType().GetProperty("Long");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <long>(actual);
            Assert.Equal((long)-5, actual);
        }
Пример #9
0
        public void Binary()
        {
            var prop  = poco.GetType().GetProperty("Binary");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <byte[]>(actual);
            Assert.Equal(poco.Binary, actual);
        }
Пример #10
0
        public void BoolFalse()
        {
            var prop  = poco.GetType().GetProperty("False");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <bool>(actual);
            Assert.Equal(false, actual);
        }
Пример #11
0
        public void Decimal()
        {
            var prop  = poco.GetType().GetProperty("Decimal");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var actualDec = Assert.IsType <decimal>(actual);

            Assert.Equal(12345.0123456789012345m, actualDec, 15);
        }
Пример #12
0
        public void EnumNullable_hasValue()
        {
            poco.EnumNullable = DasPocoEnum.One;
            var prop  = poco.GetType().GetProperty("EnumNullable");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var typedActual = Assert.IsType <DasPocoEnum>(actual);

            Assert.Equal(DasPocoEnum.One, typedActual);
        }
Пример #13
0
        public void TimeSpanNullable_hasValue()
        {
            poco.TimeSpanNullable = TimeSpan.FromHours(789.123);
            var prop  = poco.GetType().GetProperty("TimeSpanNullable");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var typedActual = Assert.IsType <TimeSpan>(actual);

            Assert.Equal(poco.TimeSpanNullable, typedActual);
        }
Пример #14
0
        public void CharNullable_hasValue()
        {
            poco.CharNullable = 'x';
            var prop  = poco.GetType().GetProperty("CharNullable");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var typedActual = Assert.IsType <char>(actual);

            Assert.Equal('x', typedActual);
        }
Пример #15
0
        public void DateTimeOffsetNullable_hasValue()
        {
            poco.DateTimeOffsetNullable = DateTimeOffset.UtcNow;
            var prop  = poco.GetType().GetProperty("DateTimeOffsetNullable");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var typedActual = Assert.IsType <DateTimeOffset>(actual);

            Assert.Equal(poco.DateTimeOffsetNullable, typedActual);
        }
Пример #16
0
        public void TimeSpanX()
        {
            poco.TimeSpan = TimeSpan.FromDays(1.34567);

            var prop  = poco.GetType().GetProperty("TimeSpan");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <TimeSpan>(actual);
            Assert.Equal(poco.TimeSpan, actual);
        }
Пример #17
0
        public void DateTimeX()
        {
            poco.DateTime = DateTime.UtcNow;

            var prop  = poco.GetType().GetProperty("DateTime");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <DateTime>(actual);
            Assert.Equal(poco.DateTime, actual);
        }
Пример #18
0
        public void ShortNullable_hasValue()
        {
            poco.ShortNullable = -5;
            var prop  = poco.GetType().GetProperty("ShortNullable");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var typedActual = Assert.IsType <short>(actual);

            Assert.Equal(-5, typedActual);
        }
Пример #19
0
        public void LongNullable_hasValue()
        {
            poco.LongNullable = 789456123;
            var prop  = poco.GetType().GetProperty("LongNullable");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var typedActual = Assert.IsType <long>(actual);

            Assert.Equal(789456123, typedActual);
        }
Пример #20
0
        public void FloatNullable_hasValue()
        {
            poco.FloatNullable = 1.2f;
            var prop  = poco.GetType().GetProperty("FloatNullable");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var typedActual = Assert.IsType <float>(actual);

            Assert.Equal(1.2f, typedActual);
        }
Пример #21
0
        public void DecimalNullable_hasValue()
        {
            poco.DecimalNullable = 12345.0123456789012345m;
            var prop  = poco.GetType().GetProperty("DecimalNullable");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var typedActual = Assert.IsType <decimal>(actual);

            Assert.Equal(12345.0123456789012345m, typedActual);
        }
Пример #22
0
        public void BoolNullable_hasValue()
        {
            poco.BoolNullable = true;
            var prop  = poco.GetType().GetProperty("BoolNullable");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var typedActual = Assert.IsType <bool>(actual);

            Assert.Equal(true, typedActual);
        }
Пример #23
0
        private void SetValues(object poco, Entity entity)
        {
            reflector
            .GetContentProperties(poco)
            .ForEach(prop =>
            {
                var name  = reflector.GetValueName(prop);
                var value = entity[name];

                prop.SetValue(poco, PocoValueFactory.FromEntityValue(prop, value, this));
            });
        }
Пример #24
0
        public void ListString()
        {
            var prop  = poco.GetType().GetProperty("ListString");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <List <string> >(actual);
            var list = (List <string>)actual;

            Assert.Equal(3, list.Count);
            Assert.Equal("one", list[0]);
            Assert.Equal("two", list[1]);
            Assert.Equal("three", list[2]);
        }
Пример #25
0
        public void ArrayInt()
        {
            var prop  = poco.GetType().GetProperty("ArrayInt");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <int[]>(actual);
            var list = (int[])actual;

            Assert.Equal(3, list.Length);
            Assert.Equal(1, list[0]);
            Assert.Equal(2, list[1]);
            Assert.Equal(3, list[2]);
        }
Пример #26
0
        public void Complex()
        {
            var sub = new Sub();

            poco.Complex = sub;

            A.CallTo(() => pocoFactory.FromEmbeddedEntity(typeof(Sub), A <Entity> ._)).Returns(sub);

            var prop  = poco.GetType().GetProperty("Complex");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            Assert.IsType <Sub>(actual);
            Assert.Same(sub, actual);
        }
Пример #27
0
        public void CustomCollection()
        {
            var simple = new Simple {
                Hello = "neo"
            };
            var collection = new MyCollection
            {
                simple
            };

            poco.MyCollection = collection;

            A.CallTo(() => pocoFactory.FromEmbeddedEntity(typeof(Simple), A <Entity> ._)).Returns(simple);

            var prop  = poco.GetType().GetProperty("MyCollection");
            var value = EntityValueFactory.FromPropertyInfo(poco, prop, entityFactory, new List <string>());

            var actual = PocoValueFactory.FromEntityValue(prop, value, pocoFactory);

            var typed = Assert.IsType <MyCollection>(actual);

            Assert.Equal(1, typed.Count);
            Assert.Equal("neo", typed[0].Hello);
        }