Beispiel #1
0
        public void LoadObject_With_IEnumerableProperty_When_TheDelegateReturnNull()
        {
            var @object = new ClassWithComplexClassList();

            @object.Id      = 1;
            @object.Objects = new List <ComplexClass>
            {
                new ComplexClass
                {
                    Id    = 1,
                    Child = new SimpleClass {
                        Id = 1, Name = "SimpleClass 1"
                    }
                },
                new ComplexClass
                {
                    Id    = 2,
                    Child = new SimpleClass {
                        Id = 2, Name = "SimpleClass2"
                    }
                }
            };

            var newSimpleClass = new SimpleClass {
                Id = 1, Name = "SimpleClass2 Modified"
            };

            _objectInspector.LoadObject(@object, value =>
            {
                if (value is ComplexClass)
                {
                    var complexClass = value as ComplexClass;
                    if (complexClass.Id == 2)
                    {
                        return(null);
                    }
                }

                if (value is SimpleClass)
                {
                    var simpleClass = value as SimpleClass;
                    if (simpleClass.Id == 2)
                    {
                        return(newSimpleClass);
                    }
                }

                return(value);
            });

            Assert.AreSame(newSimpleClass, @object.Objects[1].Child);
        }
        public void LoadObject_With_IEnumerableProperty_When_TheDelegateReturnNull()
        {
            var @object = new ClassWithComplexClassList();
            @object.Id = 1;
            @object.Objects = new List<ComplexClass>
            {
                new ComplexClass
                {
                    Id = 1,
                    Child = new SimpleClass { Id = 1, Name = "SimpleClass 1" }
                },
                new ComplexClass
                {
                    Id = 2,
                    Child = new SimpleClass { Id =2, Name = "SimpleClass2" }
                }
            };

            var newSimpleClass = new SimpleClass { Id = 1, Name = "SimpleClass2 Modified" };

            _objectInspector.LoadObject(@object, value =>
            {
                if (value is ComplexClass)
                {
                    var complexClass = value as ComplexClass;
                    if (complexClass.Id == 2)
                        return null;
                }

                if (value is SimpleClass)
                {
                    var simpleClass = value as SimpleClass;
                    if (simpleClass.Id == 2)
                        return newSimpleClass;
                }

                return value;
            });

            Assert.AreSame(newSimpleClass, @object.Objects[1].Child);
        }