Example #1
0
        public void ReadSingleRowWithParametersAsync()
        {
            var dataContainer = new TestDataContainer();
            var dataReader    = MockDatabaseFactory.CreateDbDataReader(dataContainer);
            var query         = new SQLQuery(sqlString, SQLQueryType.DataReader)
            {
                ProcessRow = dataContainer.ProcessRow
            };

            query.Parameters.Add("param1", "value1");
            query.Parameters.Add("param2", "value2");
            query.Parameters.Add("param3", 333);
            var task = queryRunner.RunQueryAsync(query);

            task.Wait();

            dataContainer.AssertData();
            VerifyLogging(sqlString);
            Assert.AreEqual(sqlString, MockDatabaseFactory.DbCommand.Object.CommandText);
            MockDatabaseFactory.DbConnection.VerifySet(dbc => dbc.ConnectionString = connectionString, Times.Exactly(1));
            MockDatabaseFactory.Parameters.Verify(p => p.Add(It.IsAny <DbParameter>()), Times.Exactly(3));
            MockDatabaseFactory.DbCommand.Protected()
            .Verify <Task <DbDataReader> >("ExecuteDbDataReaderAsync", Times.Exactly(1), It.IsAny <CommandBehavior>(), It.IsAny <System.Threading.CancellationToken>());
            MockDatabaseFactory.DbCommand.Protected()
            .VerifyGet <DbParameterCollection>("DbParameterCollection", Times.Exactly(3));
            Assert.AreEqual(1, query.RowCount);
            dataReader.Verify(dr => dr.Read(), Times.Exactly(2));
        }
Example #2
0
        public void ReadSingleRowWithInParameters()
        {
            var dataContainer = new TestDataContainer();
            var dataReader    = MockDatabaseFactory.CreateDbDataReader(dataContainer);
            var query         = new SQLQuery(sqlInString, SQLQueryType.DataReader)
            {
                ProcessRow = dataContainer.ProcessRow
            };

            query.Parameters.Add("param1", "value1");
            query.Parameters.Add("param2", "value2");
            query.Parameters.Add("param3", 333);
            var inList = new List <object>();

            inList.AddRange(new string[] { "val1", "val2", "val3", "val4" });
            query.InParameters.Add("inParam", inList);
            queryRunner.RunQuery(query);

            dataContainer.AssertData();
            VerifyLogging(sqlInStringAfterProcessing);

            Assert.AreEqual(sqlInStringAfterProcessing, MockDatabaseFactory.DbCommand.Object.CommandText);
            MockDatabaseFactory.DbConnection.VerifySet(dbc => dbc.ConnectionString = connectionString, Times.Exactly(1));
            MockDatabaseFactory.Parameters.Verify(p => p.Add(It.IsAny <DbParameter>()), Times.Exactly(7));
            MockDatabaseFactory.DbCommand.Protected()
            .Verify <Task <DbDataReader> >("ExecuteDbDataReaderAsync", Times.Exactly(1), It.IsAny <CommandBehavior>(), It.IsAny <System.Threading.CancellationToken>());
            Assert.AreEqual(1, query.RowCount);
            dataReader.Verify(dr => dr.Read(), Times.Exactly(2));
        }
Example #3
0
        public static Mock <MoqDataReader> CreateDbDataReader(TestDataContainer dataContainer)
        {
            var dataReader = new Mock <MoqDataReader>(dataContainer.dataRow);

            dataReader.CallBase = true;
            dataReader.Setup(dr => dr.Close());
            MockDatabaseFactory.DbCommand = MockDatabaseFactory.CreateDbCommand(dataReader.Object);
            return(dataReader);
        }
Example #4
0
        public void ReadScalerDbNullReturnsNullObject()
        {
            DBNull scalerReturn = DBNull.Value;

            MockDatabaseFactory.SetScalerReturnValue(scalerReturn);
            var query       = new SQLQueryScaler <string>(sqlString);
            var returnValue = queryRunner.RunScalerQuery <string>(query);

            Assert.IsNull(returnValue);
            VerifyLogging(sqlString);
            Assert.AreEqual(sqlString, MockDatabaseFactory.DbCommand.Object.CommandText);
            MockDatabaseFactory.DbConnection.VerifySet(dbc => dbc.ConnectionString = connectionString, Times.Exactly(1));
            MockDatabaseFactory.DbConnection.Verify(dbc => dbc.Open(), Times.Exactly(1));
            MockDatabaseFactory.DbConnection.Verify(dbc => dbc.Close(), Times.Exactly(1));
            MockDatabaseFactory.DbCommand.Verify(dbc => dbc.ExecuteScalarAsync(It.IsAny <System.Threading.CancellationToken>()), Times.Exactly(1));
        }
Example #5
0
        public void Setup()
        {
            MockDatabaseFactory.DbParameter   = MockDatabaseFactory.CreateDbParameter();
            MockDatabaseFactory.Parameters    = MockDatabaseFactory.CreateParameterCollection();
            MockDatabaseFactory.DbConnection  = MockDatabaseFactory.CreateDbConnection();
            MockDatabaseFactory.DbCommand     = MockDatabaseFactory.CreateDbCommand();
            MockDatabaseFactory.DbTransaction = MockDatabaseFactory.CreateDbTransaction();
            MockDatabaseFactory.SetScalerReturnValue(scalerStringValue);

            queryRunner            = new QueryRunner(connectionString, provider, new MockDatabaseFactory());
            queryRunner.LogMessage = new Action <string, System.Diagnostics.TraceEventType>((message, level) =>
            {
                logMessage = message;
                logLevel   = level;
            });
            queryRunner.DebugLoggingEnabled = true;
            logMessage = string.Empty;
            logLevel   = System.Diagnostics.TraceEventType.Start;
        }
Example #6
0
        public void ReadScalerIntReturnedAsIntAsync()
        {
            int scalerReturn = 555;

            MockDatabaseFactory.SetScalerReturnValue(scalerReturn);
            var query = new SQLQueryScaler <int>(sqlString);
            var task  = queryRunner.RunScalerQueryAsync <int>(query);

            task.Wait();
            var returnValue = task.Result;

            Assert.AreEqual(scalerReturn, returnValue);
            VerifyLogging(sqlString);
            Assert.AreEqual(sqlString, MockDatabaseFactory.DbCommand.Object.CommandText);
            MockDatabaseFactory.DbConnection.VerifySet(dbc => dbc.ConnectionString = connectionString, Times.Exactly(1));
            MockDatabaseFactory.DbConnection.Verify(dbc => dbc.Open(), Times.Exactly(1));
            MockDatabaseFactory.DbConnection.Verify(dbc => dbc.Close(), Times.Exactly(1));
            MockDatabaseFactory.DbCommand.Verify(dbc => dbc.ExecuteScalarAsync(It.IsAny <System.Threading.CancellationToken>()), Times.Exactly(1));
        }
Example #7
0
        public void ReadSingleRowNoParameters()
        {
            var dataContainer = new TestDataContainer();
            var dataReader    = MockDatabaseFactory.CreateDbDataReader(dataContainer);
            var query         = new SQLQuery(sqlString, SQLQueryType.DataReader)
            {
                ProcessRow = dataContainer.ProcessRow
            };

            queryRunner.RunQuery(query);

            dataContainer.AssertData();
            VerifyLogging(sqlString);
            MockDatabaseFactory.DbConnection.VerifySet(dbc => dbc.ConnectionString = connectionString, Times.Exactly(1));
            MockDatabaseFactory.Parameters.Verify(p => p.Add(It.IsAny <DbParameter>()), Times.Exactly(0));
            MockDatabaseFactory.DbCommand.Protected()
            .Verify <Task <DbDataReader> >("ExecuteDbDataReaderAsync", Times.Exactly(1), It.IsAny <CommandBehavior>(), It.IsAny <System.Threading.CancellationToken>());
            Assert.AreEqual(1, query.RowCount);
            dataReader.Verify(dr => dr.Read(), Times.Exactly(2));
        }