示例#1
0
        public void Load_IfNoneOfTheAggregatedItemsOfARowHaveTheColumnHeader_Return0(string rowHeaderValue, string columnHeader)
        {
            var sampleItems = new MatrixMockItem[]
            {
                new MatrixMockItem("A", "X", "C1", 1),
                new MatrixMockItem("A", "X", "C1", 2),
                new MatrixMockItem("B", "Y", "C2", 1),
                new MatrixMockItem("B", "Y", "C2", 3),
            };

            var matrix = MatrixBuilder <MatrixMockItem>
                         .Matrix()
                         .AddRowHeader("Header1", item => item.RowHeader1)
                         .NoMoreRowHeaders()
                         .AddColumnHeader(item => item.ColumnHeader)
                         .AggregateBy(items => items.Sum(i => i.Value))
                         .Build();

            matrix.Load(sampleItems);


            var matrixRow = matrix.FirstOrDefault(row =>
            {
                var property = TypeDescriptor.GetProperties(row)["Header1"];
                return(property.GetValue(row).Equals(rowHeaderValue));
            });

            Assert.AreEqual(0, TypeDescriptor.GetProperties(matrixRow)[columnHeader].GetValue(matrixRow));
        }
示例#2
0
        public void Load_IfAnyOfTheColumnHeaderValuesIsNull_ShouldAddAColumnNamedNULL()
        {
            var sampleItems = new MatrixMockItem[]
            {
                new MatrixMockItem("A", "X", "C1", 1),
                new MatrixMockItem("A", "X", null, 2),
            };

            var matrix = MatrixBuilder <MatrixMockItem>
                         .Matrix()
                         .AddRowHeader("Header1", item => item.RowHeader1)
                         .NoMoreRowHeaders()
                         .AddColumnHeader(item => item.ColumnHeader)
                         .AggregateBy(items => items.Sum(i => i.Value))
                         .Build();


            matrix.Load(sampleItems);

            var matrixRow = matrix[0];

            var property = TypeDescriptor.GetProperties(matrixRow)["NULL"];

            Assert.IsNotNull(property);
        }
示例#3
0
        public void Load_CorrectlyAggregatesForNulls()
        {
            var sampleItems = new MatrixMockItem[]
            {
                new MatrixMockItem("A", "X", "C1", 1),
                new MatrixMockItem("A", "X", null, 2),
                new MatrixMockItem("A", "Y", "C1", 1),
                new MatrixMockItem("A", "Y", null, 3),
            };

            var matrix = MatrixBuilder <MatrixMockItem>
                         .Matrix()
                         .AddRowHeader("Header1", item => item.RowHeader1)
                         .NoMoreRowHeaders()
                         .AddColumnHeader(item => item.ColumnHeader)
                         .AggregateBy(items => items.Sum(i => i.Value))
                         .Build();


            matrix.Load(sampleItems);

            var matrixRow = matrix[0];

            var property = TypeDescriptor.GetProperties(matrixRow)["NULL"];

            Assert.AreEqual(5, property.GetValue(matrixRow));
        }
示例#4
0
        public void Load_CorrectlyAggregatesTheRowValues(string propertyName, int expectedValue)
        {
            var sampleItems = new MatrixMockItem[]
            {
                new MatrixMockItem("A", "X", "C1", 1),
                new MatrixMockItem("A", "X", "C2", 2),
                new MatrixMockItem("A", "Y", "C1", 1),
                new MatrixMockItem("A", "Y", "C2", 3),
            };

            var matrix = MatrixBuilder <MatrixMockItem>
                         .Matrix()
                         .AddRowHeader("Header1", item => item.RowHeader1)
                         .NoMoreRowHeaders()
                         .AddColumnHeader(item => item.ColumnHeader)
                         .AggregateBy(items => items.Sum(i => i.Value))
                         .Build();

            matrix.Load(sampleItems);

            var matrixRow = matrix[0];

            var property = TypeDescriptor.GetProperties(matrixRow)[propertyName];

            Assert.AreEqual(expectedValue, property.GetValue(matrixRow));
        }