示例#1
0
        public T RunScalerQuery <T>(SQLQueryScaler <T> query)
        {
            var task = RunScalerQueryAsync <T>(query);

            task.Wait();
            return(task.Result);
        }
示例#2
0
        public async Task <T> RunScalerQueryAsync <T>(string sql)
        {
            var query = new SQLQueryScaler <T>(sql);

            await RunQueryAsync(query);

            return(query.ReturnValue);
        }
示例#3
0
        public static SQLQueryScaler <int> GetInsertQuery(this ParentObject parentObject)
        {
            string sql   = "insert into Parent (Name, SomeProp) OUTPUT Inserted.pk values (@name, @someprop);";
            var    query = new SQLQueryScaler <int>(sql);

            query.Parameters.Add("name", parentObject.Name);
            query.Parameters.Add("someprop", parentObject.SomeProp);

            return(query);
        }
示例#4
0
        public void ReadScalerReturnsAString()
        {
            var query       = new SQLQueryScaler <string>(sqlString);
            var returnValue = queryHelper.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));
        }
示例#5
0
        public void ReadScalerDbNullReturnsNullObjectAsync()
        {
            DBNull scalerReturn = DBNull.Value;

            MockDatabaseFactory.SetScalerReturnValue(scalerReturn);
            var query = new SQLQueryScaler <string>(sqlString);
            var task  = queryHelper.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));
        }
示例#6
0
        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 = queryHelper.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));
        }
示例#7
0
        public async Task <T> RunScalerQueryAsync <T>(SQLQueryScaler <T> query)
        {
            await RunQueryAsync(query);

            return(query.ReturnValue);
        }