Example #1
0
        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());
        }
Example #2
0
        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();
                }
            }
        }
Example #3
0
        public void TestChecking_RoundDateToMiddleOfQuarter_NoColumnSet()
        {
            var dil = new RoundDateToMiddleOfQuarter();

            Assert.Throws <DilutionColumnNotSetException>(() => dil.Check(new ThrowImmediatelyCheckNotifier()));
        }