Default IDatabasePopulator implementation.

Namespace:  TestFu.Data.Populators
Assembly:  TestFu (in TestFu.dll) Version: 2.4.2.1515 (2.4.2.1515)

Syntax

C#
public class DatabasePopulator : IDatabasePopulator
Visual Basic (Declaration)
Public Class DatabasePopulator _
	Implements IDatabasePopulator

Examples

This example shows how the data generator can be used to create unit tests on database. In this example, we setup the dummy DataSetUserOrderProductDatabase and the populator in the SetUp method.

CopyC#
using System;
using System.Data;
using MbUnit.Core.Framework;
using MbUnit.Framework;
using TestFu.Data;
using TestFu.Data.Populators;

namespace TestFu.Tests.Data
{
    [TestFixture]
    public class DatabasePopulatorTest
    {
        private UserOrderProductDatabase db;
        private DatabasePopulator pop;
        private ITablePopulator users;
        private ITablePopulator orders;
        private ITablePopulator products;
        private ITablePopulator orderProducts;

        [SetUp]
        public void SetUp()
        {
            this.db=new UserOrderProductDatabase();
            this.pop = new DatabasePopulator();
            this.pop.Populate(this.db.DataSet);

            this.users=this.pop.Tables[this.db.Users];
            this.orders=this.pop.Tables[this.db.Orders];
            this.products=this.pop.Tables[this.db.Products];
            this.orderProducts=this.pop.Tables[this.db.OrderProducts];
        }

        [Test]
        public void AddOneUser()
        {
            DataRow row = users.Generate();
            this.db.Users.Rows.Add(row);
        }

        [Test]
        public void AddOneUserOneOrder()
        {
            this.AddOneUser();
            DataRow row = orders.Generate();
            this.db.Orders.Rows.Add(row);
        }

        [Test]
        [ExpectedException(typeof(InvalidOperationException))]
        public void AddOneOrder()
        {
            DataRow row = orders.Generate();
        }

        [Test]
        [ExpectedException(typeof(InvalidOperationException))]
        public void AddOneOrderProduct()
        {
            DataRow row = orderProducts.Generate();
        }

        [Test]
        public void AddOneUserOneOrderOneProduct()
        {
            this.AddOneUserOneOrder();

            DataRow row = products.Generate();
            this.db.Products.Rows.Add(row);
        }

        [Test]
        public void AddOneUserOneOrderOneProductOneProductOrder()
        {
            this.AddOneUserOneOrderOneProduct();
            DataRow row=orderProducts.Generate();
            this.db.OrderProducts.Rows.Add(row);
        }

        [Test]
        public void AddTwoUsers()
        {
            AddOneUser();
            AddOneUser();
        }

        [TearDown]
        public void Check()
        {
            this.db.AcceptChanges();
            Console.WriteLine(db.ToString());
        }
    }
}

Inheritance Hierarchy

System..::.Object
  TestFu.Data.Populators..::.DatabasePopulator
    TestFu.Data.Populators..::.DbDatabasePopulator

See Also