public async Task VisitAsync_WhenGivenComplexObject_IsCalledCorrectNumberOfTimes()
        {
            var i       = 0;
            var visitor = new ReflectivePropertyVisitor <DataStatusItem>(x =>
            {
                i++;
                return(Task.CompletedTask);
            });

            var testObject = new
            {
                DataStatusItem = new List <DataStatusItem>
                {
                    new DataStatusItem {
                        DataItemID = 1, DataItemCurrentStatusID = 1, DataItemStatusID = 1, DateEffective = DateTime.Now
                    },
                    new DataStatusItem {
                        DataItemID = 2, DataItemCurrentStatusID = 2, DataItemStatusID = 2, DateEffective = DateTime.Now
                    },
                },
                MySubThingy = new
                {
                    AnotherSubThingy = new
                    {
                        Child = new DataStatusItem {
                        }
                    }
                },
                Brand            = 1,
                DataType         = 2,
                ProcessingStatus = 3,
                IntList          = new List <int> {
                    11,
                    22,
                    33
                }
            };

            var basicObject = new DataStatusItem {
                DataItemID = 1, DataItemCurrentStatusID = 1, DataItemStatusID = 1, DateEffective = DateTime.Now
            };

            await visitor.VisitAsync(testObject);

            await visitor.VisitAsync(basicObject);

            Assert.AreEqual(4, i);
        }
示例#2
0
        public ReflectivePropertyVisitorBenchmarks()
        {
            _cachedVisitor = new ReflectivePropertyVisitor <DataStatusItem>(x =>
            {
                return(Task.CompletedTask);
            });

            _visitor = new PropertyVisitor <DataStatusItem>(x =>
            {
                return(Task.CompletedTask);
            });

            _testObject = new
            {
                DataStatusItem = new List <DataStatusItem>
                {
                    new DataStatusItem {
                        DataItemID = 1, DataItemCurrentStatusID = 1, DataItemStatusID = 1, DateEffective = DateTime.Now
                    },
                    new DataStatusItem {
                        DataItemID = 2, DataItemCurrentStatusID = 2, DataItemStatusID = 2, DateEffective = DateTime.Now
                    },
                },
                MySubThingy = new
                {
                    AnotherSubThingy = new
                    {
                        Child = new DataStatusItem {
                        }
                    }
                },
                Brand            = 1,
                DataType         = 2,
                ProcessingStatus = 3,
                IntList          = new List <int> {
                    11,
                    22,
                    33
                }
            };
        }