using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ScientificDistance.Unit_Tests
{
///
/// This class rebuilds the unit test database from a MySQL dump.
///
/// See the following files for more details on where this data comes from:
/// http://stellman-greene.com/ScientificDistance/Steps%20for%20generating%20Scientific%20Distance%20test%20data.doc
/// http://stellman-greene.com/ScientificDistance/Scientific%20Distance%20unit%20test%20data.xls
///
public static class TestDatabase
{
public const string DatabaseName = "scientific_distance_unit_test";
public const string DSN = "Scientific Distance Unit Test";
///
/// Rebuild the test database from a saved SQL file
/// Database dump to rebuild from
///
public static void Rebuild()
{
Database DB = new Database(DSN);
DB.ExecuteNonQuery("drop database if exists " + DatabaseName + ";");
DB.ExecuteNonQuery("create database " + DatabaseName + ";");
DB.ExecuteNonQuery("use " + DatabaseName + ";");
string Contents = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory
+ "\\Unit Tests\\UnitTestDatabase.sql");
int Statement = 0;
foreach (string SQL in Contents.Split(';'))
{
Statement++;
try
{
if (SQL.Trim() != "")
{
DB.ExecuteNonQuery(SQL);
}
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show("SQL statement #" + Statement.ToString() + " failed: " + ex.Message, "TestDatabase.Rebuild()");
throw ex;
}
}
}
}
}