public void TestChecking_RoundDateToMiddleOfQuarter_CompatibleDataType(string incompatibleType) { var col = Mock.Of <IPreLoadDiscardedColumn>(p => p.SqlDataType == incompatibleType); var dil = new RoundDateToMiddleOfQuarter(); dil.ColumnToDilute = col; dil.Check(new ThrowImmediatelyCheckNotifier()); }
public void TestRoundDateToMiddleOfQuarter(string input, string expectedDilute) { var tbl = Mock.Of <ITableInfo>(m => m.GetRuntimeName(LoadStage.AdjustStaging, null) == "DateRoundingTests"); var col = Mock.Of <IPreLoadDiscardedColumn>(c => c.TableInfo == tbl && c.GetRuntimeName() == "TestField"); var o = new RoundDateToMiddleOfQuarter(); o.ColumnToDilute = col; var sql = o.GetMutilationSql(null); var server = GetCleanedServer(FAnsi.DatabaseType.MicrosoftSQLServer).Server; using (var con = server.BeginNewTransactedConnection()) { try { string insert = input != null ? "'" + input + "'" : "NULL"; server.GetCommand(@"CREATE TABLE DateRoundingTests(TestField datetime) INSERT INTO DateRoundingTests VALUES (" + insert + ")", con).ExecuteNonQuery(); UsefulStuff.ExecuteBatchNonQuery(sql, con.Connection, con.Transaction); var result = server.GetCommand("SELECT * from DateRoundingTests", con).ExecuteScalar(); if (expectedDilute == null) { Assert.AreEqual(DBNull.Value, result); } else { Assert.AreEqual(DateTime.Parse(expectedDilute), result); } } finally { con.ManagedTransaction.AbandonAndCloseConnection(); } } }
public void TestChecking_RoundDateToMiddleOfQuarter_NoColumnSet() { var dil = new RoundDateToMiddleOfQuarter(); Assert.Throws <DilutionColumnNotSetException>(() => dil.Check(new ThrowImmediatelyCheckNotifier())); }