예제 #1
0
        public void BuildRowGroups_Given_rows_with_the_same_key_Rows_should_be_grouped_with_a_master_row()
        {
            var actual = _target.BuildRowGroups(_rows).ToArray();;

            TestContext.PrintJson(actual);

            var actualGroup0 = actual[0];

            Assert.AreSame(_rows[0], actualGroup0.MasterRow);
            var rowsGroupedByType0 = actualGroup0.RowsGroupedByType.ToArray();

            Assert.AreEqual(2, rowsGroupedByType0.Length);
            var list = rowsGroupedByType0[0].Value;

            Assert.AreEqual(2, list.Count);
            Assert.AreSame(_rows[1], list[0]);
            Assert.AreSame(_rows[2], list[1]);

            list = rowsGroupedByType0[1].Value;
            Assert.AreEqual(1, list.Count);
            Assert.AreSame(_rows[8], list[0]);

            var actualGroup1 = actual[1];

            Assert.AreSame(_rows[3], actualGroup1.MasterRow);
            var rowsGroupedByType1 = actualGroup1.RowsGroupedByType.ToArray();

            Assert.AreEqual(1, rowsGroupedByType1.Length);
            list = rowsGroupedByType1[0].Value;
            Assert.AreEqual(1, list.Count);
            Assert.AreSame(_rows[4], list[0]);
        }
예제 #2
0
        public static IEnumerable <DataRow20Group> BuildRowGroups(IEnumerable <DataRow20> rows, Datas dataRowsDefinition)
        {
            var config = new RowGroupsCreatorConfig {
                MasterDataType = dataRowsDefinition.MasterDataType
            };
            var rowGroupsCreator = new RowGroupsCreator(config);

            return(rowGroupsCreator.BuildRowGroups(rows));
        }