The MassDataHandler is a framework to assist with Database Unit Testing. The framework makes it very easy to insert test data into a database, which in turn makes it very easy to write database unit tests. The user merely needs to specify their relevant data in a simple XML fragment, and then the framework uses knowledge of the database schema to do all the grunt work and convert that XML data into SQL, from which it populates the database.

The XML fragments that contain the test data are robust and refactorable. You can include expressions like variables substitution and identity lookup, default row templates, and include statements to import sub-templates. Because the framework already knows the database schema, you only need to specify the relevant data, and the framework can auto-populate the rest of the row’s required columns with dummy data.

This tool is intended for:
  • Supplying data for Database unit testing.
  • Easily creating your own data script to insert data for development.
  • Extracting data from one database and inserting it into another as test data.
  • Getting snapshots of data, and them converting them to xml files for easy diff comparisons.

The MassDataHandler framework was developed at Paylocity (http://www.paylocity.com) while working on our WebPay Payroll + HR system.

The MassDataHandler 1.3 has been released! (Jan 5, 2007)

It offers several new features:
  • Improved handling of identity values and triggers: (1) Triggers no longer break the identity inserts, (2) You can specify identity inserts for a table-by-table basis using an Xml attribute on the Table element, (3) If you set IdentityInsert=On for a table without Identity, then it no longer crashes.
  • Improved extracting from existing data: (1) The Existing Data tab can now use a custom select that returns many tables, and (2) When using Existing Data tab, if you use a Custom filter, it will copy your Sql select values into the Xml file as a meta node.
  • Some miscellaneous bug fixes and enhancements.


The MassDataHandler 1.2 has been released!

It offers several new features:
  • The GUI now offers the ability to ignore primary keys when generating from existing data.
  • The Build process has a reusable script to drop all foreign keys from a database. This makes it easier for you to adapt the demo script to your own project.
  • The Readme has been updated with better documentation.
  • A few miscellaneous bugs have been fixed.


Last edited Jan 6, 2007 at 3:39 AM by timstall, version 7