public async Task CheckOutputParameters() { await using var sw = new MsSqlWorker(ConnectionString); MsSqlWorker.DbParametersConstructor args = new SwParameters { { "primePosition", 1 }, { "number", 0, System.Data.DbType.Int32, System.Data.ParameterDirection.Output }, { "square", 0L, DbType.Int64, ParameterDirection.Output }, { "sqrt", 0.0, DbType.Double, ParameterDirection.Output }, { "result", 0, DbType.Int32, ParameterDirection.ReturnValue }, }; await sw.ExecAsync("GetPrimeNumber", args, commandType : System.Data.CommandType.StoredProcedure); Assert.AreEqual((int)args[1].Value, 2); Assert.AreEqual((int)args[4].Value, 1); args[0].Value = 2; await sw.ExecAsync("GetPrimeNumber", args, commandType : System.Data.CommandType.StoredProcedure); Assert.AreEqual((int)args["number"].Value, 3); Assert.AreEqual((int)args["result"].Value, 1); Func <int, int, int, Task> assert = async(position, number, result) => { args["primePosition"].Value = position; await sw.ExecAsync("GetPrimeNumber", args, commandType : System.Data.CommandType.StoredProcedure); Assert.AreEqual((int)args["number"].Value, number); Assert.AreEqual((int)args["result"].Value, result); }; await assert(3, 5, 1); await assert(4, 7, 1); await assert(5, 11, 1); await assert(6, 13, 1); await assert(7, 17, 1); await assert(8, 19, 1); await assert(9, 23, 1); await assert(10, 29, 1); await assert(11, 31, 1); args[0].Value = 100500; await sw.ExecAsync("GetPrimeNumber", args, commandType : System.Data.CommandType.StoredProcedure); Assert.AreEqual((int)args["result"].Value, 0); }
public async Task SizeForSqlParameter() { await using var sw = new MsSqlWorker(ConnectionString); MsSqlWorker.DbParametersConstructor args = new SwParameters { { "number", 1 }, { "name", default(string), DbType.String, ParameterDirection.Output, 100 }, }; Func <int, string, Task> assert = async(number, name) => { args[0].Value = number; await sw.ExecAsync("NumberName", args, commandType : CommandType.StoredProcedure); Assert.AreEqual(args["name"].Value, name); }; await assert(2, "two"); await assert(3, "three"); }