Exemple #1
0
        public void Should_return_data_items_after_nested_group()
        {
            var customers = ArrangeCustomers();

            var dataSource = customers.GroupBy(new[]
            {
                new GroupDescriptor
                {
                    Member = "Gender"
                },
                new GroupDescriptor
                {
                    Member = "IsActive"
                }
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);

            var all   = enumerator.ToArray();
            var third = all[2];

            third.Type.ShouldEqual(GridItemType.DataRow);

            var customer = third.DataItem as Customer;

            customer.ShouldBeSameAs(customers.First());
        }
        public void Should_return_data_items_after_nested_group()
        {
            var customers = ArrangeCustomers();

            var dataSource = customers.GroupBy(new[]
            {
                new GroupDescriptor
                {
                    Member = "Gender"
                },
                new GroupDescriptor
                {
                    Member = "IsActive"
                }
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));

            var all = enumerator.ToArray();
            var third = all[2];

            third.Type.ShouldEqual(GridItemType.DataRow);

            var customer = third.DataItem as Customer;
            customer.ShouldBeSameAs(customers.First());
        }
Exemple #3
0
        public void Should_return_nested_group()
        {
            var dataSource = ArrangeCustomers().GroupBy(new[]
            {
                new GroupDescriptor
                {
                    Member = "Gender"
                },
                new GroupDescriptor
                {
                    Member = "IsActive"
                }
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);

            var all    = enumerator.ToArray();
            var second = all[1];

            second.Type.ShouldEqual(GridItemType.GroupRow);

            var group = second.DataItem as IGroup;

            group.Key.ShouldEqual(true);
        }
        public IHtmlNode CreateBody(GridRenderingData renderingData)
        {
            var enumerator = new GridDataSourceEnumerator(renderingData.DataSource, itemCreatorFactory.Create(renderingData.DataKeyStore, renderingData), renderingData.InsertRowPosition);

            var rowBuilders = enumerator.Select(item => rowBuilderFactory.CreateBuilder(renderingData, item));

            return CreateBody(rowBuilders);
        }
Exemple #5
0
        public void Should_return_empty_row_if_data_source_is_emmpty()
        {
            enumerator = new GridDataSourceEnumerator(new object[0], factory.Object);

            var first = enumerator.First();

            first.Type.ShouldEqual(GridItemType.EmptyRow);
            first.DataItem.ShouldBeNull();
        }
Exemple #6
0
        public void Should_return_empty_row_if_data_source_is_null()
        {
            enumerator = new GridDataSourceEnumerator(null, factory.Object, default(GridInsertRowPosition));

            var first = enumerator.First();

            first.Type.ShouldEqual(GridItemType.EmptyRow);
            first.DataItem.ShouldBeNull();
        }
Exemple #7
0
        public void Should_set_group_level()
        {
            var dataSource = ArrangeGroupedDataSource();

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);

            var all             = enumerator.ToArray();
            var firstGroupItem  = all[0];
            var secondGroupItem = all[2];

            firstGroupItem.GroupLevel.ShouldEqual(0);
            firstGroupItem.GroupLevel.ShouldEqual(secondGroupItem.GroupLevel);
        }
Exemple #8
0
        public void Should_return_group_rows()
        {
            var dataSource = ArrangeGroupedDataSource();

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);

            var first = enumerator.First();

            first.Type.ShouldEqual(GridItemType.GroupRow);
            var group = first.DataItem as IGroup;

            group.Key.ShouldEqual(Gender.Female);
        }
        public void Should_return_data_items_in_groups()
        {
            var dataSource = ArrangeGroupedDataSource();

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));
            var all = enumerator.ToArray();
            var second = all[1];

            second.Type.ShouldEqual(GridItemType.DataRow);

            var customer = second.DataItem as Customer;
            var gender = customer.Gender;
            gender.ShouldEqual(Gender.Female);
        }
Exemple #10
0
        public void Should_return_data_items_in_groups()
        {
            var dataSource = ArrangeGroupedDataSource();

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);
            var all    = enumerator.ToArray();
            var second = all[1];

            second.Type.ShouldEqual(GridItemType.DataRow);

            var customer = second.DataItem as Customer;
            var gender   = customer.Gender;

            gender.ShouldEqual(Gender.Female);
        }
Exemple #11
0
        public void Should_return_group_after_data_items()
        {
            var dataSource = ArrangeGroupedDataSource();

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);

            var all   = enumerator.ToArray();
            var third = all[2];

            third.Type.ShouldEqual(GridItemType.GroupRow);

            var group = third.DataItem as IGroup;

            group.Key.ShouldEqual(Gender.Male);
        }
Exemple #12
0
        public void Should_return_data_rows()
        {
            var data = new[] { "foo" };
            var item = new GridItem
            {
                Type     = GridItemType.DataRow,
                DataItem = data[0]
            };

            factory.Setup(f => f.CreateItem(data[0])).Returns(() => item);
            enumerator = new GridDataSourceEnumerator(data, factory.Object);

            var first = enumerator.First();

            first.ShouldBeSameAs(item);
        }
Exemple #13
0
        public void Should_set_group_level_of_detail_row_if_grouped()
        {
            var dataSource = ArrangeGroupedDataSource();

            factory.Setup(c => c.CreateItem(It.IsAny <Customer>())).Returns((Customer c) => new GridItem
            {
                Type     = GridItemType.DataRow,
                State    = GridItemStates.Master,
                DataItem = c
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);

            var all = enumerator.ToArray();

            all[2].GroupLevel.ShouldEqual(1);
        }
Exemple #14
0
        public void Should_return_detail_row_after_group()
        {
            var dataSource = ArrangeGroupedDataSource();

            factory.Setup(c => c.CreateItem(It.IsAny <Customer>())).Returns((Customer c) => new GridItem
            {
                Type     = GridItemType.DataRow,
                State    = GridItemStates.Master,
                DataItem = c
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));

            var all = enumerator.ToArray();

            all[2].Type.ShouldEqual(GridItemType.DetailRow);
        }
Exemple #15
0
        public void Should_set_odd_item_as_alternating()
        {
            var dataSource = ArrangeCustomers();

            factory.Setup(c => c.CreateItem(It.IsAny <Customer>())).Returns((Customer c) => new GridItem
            {
                Type     = GridItemType.DataRow,
                State    = GridItemStates.Default,
                DataItem = c
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);

            var all = enumerator.ToArray();

            (all[0].State & GridItemStates.Alternating).ShouldNotEqual(GridItemStates.Alternating);
            (all[1].State & GridItemStates.Alternating).ShouldEqual(GridItemStates.Alternating);
        }
Exemple #16
0
        public void Should_return_detail_row()
        {
            var dataSource = new [] { "foo" };

            factory.Setup(c => c.CreateItem(dataSource[0])).Returns((string c) => new GridItem
            {
                Type     = GridItemType.DataRow,
                State    = GridItemStates.Master,
                DataItem = c
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);

            var all = enumerator.ToArray();

            var second = all[1];

            second.Type.ShouldEqual(GridItemType.DetailRow);
            second.DataItem.ShouldBeSameAs(dataSource[0]);

            all.Length.ShouldEqual(2);
        }
Exemple #17
0
        public void Should_set_group_level_for_nested_groups()
        {
            var dataSource = ArrangeCustomers().GroupBy(new[]
            {
                new GroupDescriptor
                {
                    Member = "Gender"
                },
                new GroupDescriptor
                {
                    Member = "IsActive"
                }
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);

            var all = enumerator.ToArray();
            var firstNestedGroupItem  = all[1];
            var secondNestedGroupItem = all[4];

            firstNestedGroupItem.GroupLevel.ShouldEqual(1);
            firstNestedGroupItem.GroupLevel.ShouldEqual(secondNestedGroupItem.GroupLevel);
        }
        public void Should_return_group_after_data_items()
        {
            var dataSource = ArrangeGroupedDataSource();

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));

            var all = enumerator.ToArray();
            var third = all[2];

            third.Type.ShouldEqual(GridItemType.GroupRow);

            var group = third.DataItem as IGroup;
            group.Key.ShouldEqual(Gender.Male);
        }
        public void Should_set_odd_item_as_alternating()
        {
            var dataSource = ArrangeCustomers();
            factory.Setup(c => c.CreateItem(It.IsAny<Customer>())).Returns((Customer c) => new GridItem
            {
                Type = GridItemType.DataRow,
                State = GridItemStates.Default,
                DataItem = c
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));

            var all = enumerator.ToArray();

            (all[0].State & GridItemStates.Alternating).ShouldNotEqual(GridItemStates.Alternating);
            (all[1].State & GridItemStates.Alternating).ShouldEqual(GridItemStates.Alternating);
        }
        public void Should_set_group_level_of_detail_row_if_grouped()
        {
            var dataSource = ArrangeGroupedDataSource();

            factory.Setup(c => c.CreateItem(It.IsAny<Customer>())).Returns((Customer c) => new GridItem
            {
                Type = GridItemType.DataRow,
                State = GridItemStates.Master,
                DataItem = c
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));

            var all = enumerator.ToArray();

            all[2].GroupLevel.ShouldEqual(1);
        }
        public void Should_set_group_level_for_nested_groups()
        {
            var dataSource = ArrangeCustomers().GroupBy(new[]
            {
                new GroupDescriptor
                {
                    Member = "Gender"
                },
                new GroupDescriptor
                {
                    Member = "IsActive"
                }
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));

            var all = enumerator.ToArray();
            var firstNestedGroupItem = all[1];
            var secondNestedGroupItem = all[4];

            firstNestedGroupItem.GroupLevel.ShouldEqual(1);
            firstNestedGroupItem.GroupLevel.ShouldEqual(secondNestedGroupItem.GroupLevel);
        }
        public void Should_set_group_level()
        {
            var dataSource = ArrangeGroupedDataSource();

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));

            var all = enumerator.ToArray();
            var firstGroupItem = all[0];
            var secondGroupItem = all[2];

            firstGroupItem.GroupLevel.ShouldEqual(0);
            firstGroupItem.GroupLevel.ShouldEqual(secondGroupItem.GroupLevel);
        }
        public void Should_return_nested_group()
        {
            var dataSource = ArrangeCustomers().GroupBy(new[]
            {
                new GroupDescriptor
                {
                    Member = "Gender"
                },
                new GroupDescriptor
                {
                    Member = "IsActive"
                }
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));

            var all = enumerator.ToArray();
            var second = all[1];

            second.Type.ShouldEqual(GridItemType.GroupRow);

            var group = second.DataItem as IGroup;
            group.Key.ShouldEqual(true);
        }
        public void Should_return_group_rows()
        {
            var dataSource = ArrangeGroupedDataSource();

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));

            var first = enumerator.First();

            first.Type.ShouldEqual(GridItemType.GroupRow);
            var group = first.DataItem as IGroup;
            group.Key.ShouldEqual(Gender.Female);
        }
        public void Should_return_empty_row_if_data_source_is_null()
        {
            enumerator = new GridDataSourceEnumerator(null, factory.Object, default(GridInsertRowPosition));

            var first = enumerator.First();
            first.Type.ShouldEqual(GridItemType.EmptyRow);
            first.DataItem.ShouldBeNull();
        }
        public void Should_return_detail_row()
        {
            var dataSource = new[] { "foo" };

            factory.Setup(c => c.CreateItem(dataSource[0])).Returns((string c) => new GridItem
            {
                Type = GridItemType.DataRow,
                State = GridItemStates.Master,
                DataItem = c
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object, default(GridInsertRowPosition));

            var all = enumerator.ToArray();

            var second = all[1];

            second.Type.ShouldEqual(GridItemType.DetailRow);
            second.DataItem.ShouldBeSameAs(dataSource[0]);

            all.Length.ShouldEqual(2);
        }
        public void Should_return_empty_row_if_data_source_is_emmpty()
        {
            enumerator = new GridDataSourceEnumerator(new object[0], factory.Object);

            var first = enumerator.First();
            first.Type.ShouldEqual(GridItemType.EmptyRow);
            first.DataItem.ShouldBeNull();
        }
        public void Should_return_data_rows()
        {
            var data = new[] { "foo" };
            var item = new GridItem
            {
                Type = GridItemType.DataRow,
                DataItem = data[0]
            };

            factory.Setup(f => f.CreateItem(data[0])).Returns(() => item);
            enumerator = new GridDataSourceEnumerator(data, factory.Object, default(GridInsertRowPosition));

            var first = enumerator.First();
            first.ShouldBeSameAs(item);
        }
Exemple #29
0
        private void RenderTableBody(IHtmlElement wrapper)
        {
            var container = new HtmlElement("div")
                .AddCssClass("lib-grid-content")
                .AppendTo(wrapper);

            if (context.Scrolling.Enabled)
            {
                container
                    .Css("height", context.Scrolling.Height.ToString())
                    .Css("overflow-y", "scroll");
            }

            var table = new HtmlElement("table")
                .Css("width", new Unit(100, UnitType.Percentage).ToString())
                .AppendTo(container);

            CreateColGroups(table);

            /*var groups = new HtmlElement("colgroup").AppendTo(table);

            foreach (var column in context.Columns.Where(column => column.Visible))
            {
                var group = new HtmlElement("col", TagRenderMode.SelfClosing);

                if (column.Widht != Unit.Empty)
                {
                    group.Css("width", column.Widht.ToString()).AppendTo(groups);
                }
            }*/

            var body = new HtmlElement("tbody").AppendTo(table);
            var enumerator = new GridDataSourceEnumerator(context.DataSource);
            var rowBuilders = enumerator.Select(row => rowRendererFactory.CreateRowRenderer(context, row));

            foreach(var builder in rowBuilders)
            {
                builder.CreateRow().AppendTo(body);
            }
        }
        public void Should_return_detail_row_after_group()
        {
            var dataSource = ArrangeGroupedDataSource();

            factory.Setup(c => c.CreateItem(It.IsAny<Customer>())).Returns((Customer c) => new GridItem
            {
                Type = GridItemType.DataRow,
                State = GridItemStates.Master,
                DataItem = c
            });

            enumerator = new GridDataSourceEnumerator(dataSource, factory.Object);

            var all = enumerator.ToArray();

            all[2].Type.ShouldEqual(GridItemType.DetailRow);
        }