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)); }
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)); }
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); }
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)); }
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; }
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)); }
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)); }