예제 #1
0
        public void Map_null_to_nullable_valuetype_should_return_null()
        {
            int?result = new DynamicObjectMapper().Map <int?>(null);

            result.ShouldBeNull();
            result.HasValue.ShouldBeFalse();
        }
예제 #2
0
        public void Second_element_should_be_null()
        {
            dynamicObjects.ElementAt(1).ShouldBeNull();

            var value = new DynamicObjectMapper().Map(dynamicObjects).Cast <object>().ElementAt(1);

            value.ShouldBeNull();
        }
        public void Should_map_as_nullable_valuetype()
        {
            var obj = new DynamicObject {
                IsNull = true
            };

            var result = new DynamicObjectMapper().Map <int?>(obj);

            result.ShouldBeNull();
        }
        public void Should_serialize_dynamic_object_collection(Type type, IEnumerable value)
        {
            SkipUnsupportedDataType(type, value);

            var dynamicObjects = new DynamicObjectMapper(new DynamicObjectMapperSettings {
                WrapNullAsDynamicObject = true
            }).MapCollection(value);

            var config = CreateModelFor(type);
            var copy   = dynamicObjects.Clone(config);

            var dynamicObjectsCount = dynamicObjects?.Count() ?? 0;
            var copyCount           = copy?.Count() ?? 0;

            copyCount.ShouldBe(dynamicObjectsCount);

            for (int i = 0; i < copyCount; i++)
            {
                var originalValue = dynamicObjects.ElementAt(i)?.Get();
                var copyValue     = copy.ElementAt(i)?.Get();
                copyValue.ShouldBe(originalValue);
            }

            var c = new DynamicObjectMapper().Map(copy);

            if (value is null)
            {
                c.ShouldBeNull();
            }
            else
            {
                var array     = value.Cast <object>().ToArray();
                var copyArray = c.Cast <object>().ToArray();

                for (int i = 0; i < copyArray.Length; i++)
                {
                    copyArray[i].ShouldBe(array[i]);
                }
            }
        }
예제 #5
0
        public void Should_serialize_dynamic_object_collection(Type type, IEnumerable value, CultureInfo culture)
        {
            SkipUnsupportedDataType(type, value);

            using var cultureContext = culture.CreateContext();

            var dynamicObjects = new DynamicObjectMapper().MapCollection(value);
            var copy           = dynamicObjects.Serialize();

            var dynamicObjectsCount = dynamicObjects?.Count() ?? 0;
            var copyCount           = copy?.Count() ?? 0;

            copyCount.ShouldBe(dynamicObjectsCount);

            for (int i = 0; i < copyCount; i++)
            {
                var originalValue = dynamicObjects.ElementAt(i)?.Get();
                var copyValue     = copy.ElementAt(i)?.Get();
                copyValue.ShouldBe(originalValue);
            }

            var c = new DynamicObjectMapper().Map(copy);

            if (value is null)
            {
                c.ShouldBeNull();
            }
            else
            {
                var array     = value.Cast <object>().ToArray();
                var copyArray = c.Cast <object>().ToArray();

                for (int i = 0; i < copyArray.Length; i++)
                {
                    copyArray[i].ShouldBe(array[i]);
                }
            }
        }
예제 #6
0
        public void Map_should_be_null_for_null_object()
        {
            var result = new DynamicObjectMapper().MapObject((object)null);

            result.ShouldBeNull();
        }
예제 #7
0
        public void Map_generic_type_should_be_null_for_null_dynamic_object()
        {
            var result = new DynamicObjectMapper().Map <CustomClass>((DynamicObject)null);

            result.ShouldBeNull();
        }
예제 #8
0
        public void Map_type_should_be_null_for_null_dynamic_object()
        {
            var result = new DynamicObjectMapper().Map((DynamicObject)null, typeof(CustomClass));

            result.ShouldBeNull();
        }