public void DataTableTools_BuildPreparedDataTable_WithCustomDataTableSettings()
        {
            const long autoIncrementSeedTest = 21312;
            var        randomizer            = new BookRandomizer();

            var dtOps = new DataTableOperations();
            var books = randomizer.GetRandomCollection(30);

            var dt = dtOps.SetupDataTable <Book>()
                     .ForCollection(books)
                     .AddAllColumns()
                     .PrepareDataTable();

            dt.Columns[dtOps.GetColumn <Book>(x => x.Id)].AutoIncrementSeed = autoIncrementSeedTest;

            dt = dtOps.BuildPreparedDataTable();

            Assert.Equal(dt.Columns[dtOps.GetColumn <Book>(x => x.Id)].AutoIncrementSeed, autoIncrementSeedTest);
        }
        public void DataTableTools_BuildPreparedDataDable_AddsRows()
        {
            var            rowCount   = 30;
            BookRandomizer randomizer = new BookRandomizer();

            DataTableOperations dtOps = new DataTableOperations();
            List <Book>         books = randomizer.GetRandomCollection(rowCount);

            var dt = dtOps.SetupDataTable <Book>()
                     .ForCollection(books)
                     .AddAllColumns()
                     .PrepareDataTable();

            dt = dtOps.BuildPreparedDataDable();

            Assert.AreEqual(rowCount, dt.Rows.Count);
            Assert.AreEqual(books[10].ISBN, dt.Rows[10].Field <string>(dtOps.GetColumn <Book>(x => x.ISBN)));
            Assert.AreEqual(books[10].Description, dt.Rows[10].Field <string>(dtOps.GetColumn <Book>(x => x.Description)));
        }
        public void DataTableTools_BuildPreparedDataTable_AddsRows()
        {
            var rowCount   = 30;
            var randomizer = new BookRandomizer();

            var dtOps = new DataTableOperations();
            var books = randomizer.GetRandomCollection(rowCount);

            // ReSharper disable once RedundantAssignment
            var dt = dtOps.SetupDataTable <Book>()
                     .ForCollection(books)
                     .AddAllColumns()
                     .PrepareDataTable();

            dt = dtOps.BuildPreparedDataTable();

            Assert.Equal(rowCount, dt.Rows.Count);
            Assert.Equal(books[10].ISBN, dt.Rows[10].Field <string>(dtOps.GetColumn <Book>(x => x.ISBN)));
            Assert.Equal(books[10].Description, dt.Rows[10].Field <string>(dtOps.GetColumn <Book>(x => x.Description)));
        }
        public void DataTableTools_PrepareDataTable_WithThreeColumnsAdded()
        {
            var randomizer = new BookRandomizer();
            var books      = randomizer.GetRandomCollection(30);


            var dtOps = new DataTableOperations();
            var dt    = dtOps.SetupDataTable <Book>()
                        .ForCollection(books)
                        .AddColumn(x => x.ISBN)
                        .AddColumn(x => x.Price)
                        .AddColumn(x => x.PublishDate)
                        .CustomColumnMapping(x => x.PublishDate, "SomeOtherMapping")
                        .PrepareDataTable();

            Assert.Equal("ISBN", dt.Columns[dtOps.GetColumn <Book>(x => x.ISBN)].ColumnName);
            Assert.Equal("Price", dt.Columns[dtOps.GetColumn <Book>(x => x.Price)].ColumnName);
            Assert.Equal("SomeOtherMapping", dt.Columns[dtOps.GetColumn <Book>(x => x.PublishDate)].ColumnName);
            Assert.Equal(typeof(DateTime), dt.Columns[dtOps.GetColumn <Book>(x => x.PublishDate)].DataType);
        }