public int GetNumberOfOrdersWithStatus(OrderStatus orderStatus) { var query = new SQLQueryScaler <int>(SQLCountOrderOfStatus); query.Parameters.Add("OrderStatus", (int)orderStatus); var count = queryRunner.RunScalerQuery <int>(query); return(count); }
public void ReadScalerReturnsAString() { var query = new SQLQueryScaler <string>(sqlString); var returnValue = queryRunner.RunScalerQuery <string>(query); Assert.AreEqual(scalerStringValue, 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 ReadScalerDbNullReturnsNullObjectAsync() { DBNull scalerReturn = DBNull.Value; MockDatabaseFactory.SetScalerReturnValue(scalerReturn); var query = new SQLQueryScaler <string>(sqlString); var task = queryRunner.RunScalerQueryAsync <string>(query); task.Wait(); var returnValue = task.Result; 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 AddNewOrderAndItemsTest() { List <SQLQuery> queriesParameter = null; //since the QueryHelper object is mocked, we have to do all the call-backs ourselves.... queryRunner.Setup(qh => qh.RunQueryAsync(It.IsAny <List <SQLQuery> >(), false)) .Returns(Task.FromResult <object>(null)) .Callback <List <SQLQuery>, bool>((queries, useTrans) => { queriesParameter = queries; //save the queries to assert them afterwards.... foreach (var q in queries) { SQLQueryScaler <int> sqs = (SQLQueryScaler <int>)q; //1. call the pre-query Func. sqs.PreQueryProcess(sqs); //2. set the scaler return value. if (sqs.OrderNumber == 1) { sqs.ReturnValue = 12321; } else { sqs.ReturnValue = (sqs.OrderNumber == 2) ? 33 : 34; } //3. call the post-query Action. q.PostQueryProcess(sqs); } }); var savedOrder = repo.AddNewOrderAndItems(order); queryRunner.Verify(qh => qh.RunQueryAsync(It.IsAny <List <SQLQuery> >(), false), Times.Exactly(1)); Assert.AreEqual(12321, savedOrder.PK); Assert.AreEqual(33, savedOrder.OrderItems[0].PK); Assert.AreEqual(34, savedOrder.OrderItems[1].PK); Assert.AreEqual(3, queriesParameter.Count); Assert.AreEqual(1, queriesParameter.Count(q => q.GroupNumber == 1)); Assert.AreEqual(2, queriesParameter.Count(q => q.GroupNumber == 2)); AssertParametersAreSameAsObject(queriesParameter, false); Assert.AreEqual(StoreRepository.SQLInsertOrder, queriesParameter.FirstOrDefault(q => q.GroupNumber == 1).ModifiedSQL); Assert.AreEqual(StoreRepository.SQLInsertOrderItem, queriesParameter.FirstOrDefault(q => q.GroupNumber == 2).ModifiedSQL); }
public void ReadScalerReturnsAStringWithParametersAsync() { var query = new SQLQueryScaler <string>(sqlString); query.Parameters.Add("param1", "value1"); query.Parameters.Add("param2", "value2"); query.Parameters.Add("param3", 333); var task = queryRunner.RunScalerQueryAsync <string>(query); task.Wait(); var returnValue = task.Result; Assert.AreEqual(scalerStringValue, 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.Parameters.Verify(p => p.Add(It.IsAny <DbParameter>()), Times.Exactly(3)); MockDatabaseFactory.DbCommand.Verify(dbc => dbc.ExecuteScalarAsync(It.IsAny <System.Threading.CancellationToken>()), Times.Exactly(1)); }