Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
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");
        }