示例#1
0
        public async Task ExecuteScalarAllAsync_WithOutputParametersAndMultiOut_ExecutesSuccessfully()
        {
            SqlProgram <int, Out <int>, Out <int> > program =
                await SqlProgram <int, Out <int>, Out <int> > .Create(
                    new LoadBalancedConnection(LocalDatabaseConnectionString, LocalDatabaseCopyConnectionString),
                    "spOutputParameters");

            const int inputVal       = 123;
            const int inputOutputVal = 321;

            MultiOut <int> inputOutput = new MultiOut <int>(inputOutputVal);
            MultiOut <int> output      = new MultiOut <int>();

            string[] scalarResult = (await program.ExecuteScalarAllAsync <string>(inputVal, inputOutput, output)).ToArray();
            Assert.AreEqual(2, scalarResult.Length);
            Assert.IsTrue(scalarResult.All(i => i == "<foo>bar</foo>"));

            Assert.IsNull(inputOutput.OutputError, inputOutput.OutputError?.Message);
            Assert.IsNull(output.OutputError, output.OutputError?.Message);

            Assert.AreEqual(inputOutputVal * 2, inputOutput.OutputValue.Value);
            Assert.AreEqual(inputVal, output.OutputValue.Value);

            Assert.IsTrue(inputOutput.All(o => o.OutputValue.Value == inputOutputVal * 2));
            Assert.IsTrue(output.All(o => o.OutputValue.Value == inputVal));
        }
示例#2
0
        public async Task ExecuteScalarAllAsync_WithOutputParametersAndOut_ThrowsArgumentException()
        {
            SqlProgram <int, Out <int>, Out <int> > program =
                await SqlProgram <int, Out <int>, Out <int> > .Create(
                    new LoadBalancedConnection(LocalDatabaseConnectionString, LocalDatabaseCopyConnectionString),
                    "spOutputParameters");

            const int inputVal       = 123;
            const int inputOutputVal = 321;

            Out <int> inputOutput = new Out <int>(inputOutputVal);
            Out <int> output      = new Out <int>();

            await program.ExecuteScalarAllAsync <string>(inputVal, inputOutput, output);
        }
示例#3
0
        public async Task ExecuteScalarAsyncAll_ExecutesAndReturnsExpectedResult()
        {
            string[] connectionStrings =
            {
                LocalDatabaseConnectionString,
                LocalDatabaseCopyConnectionString
            };

            SqlProgram scalarTest =
                await SqlProgram.Create(new LoadBalancedConnection(connectionStrings), "spReturnsScalarString");

            Task <IEnumerable <string> > tasks = scalarTest.ExecuteScalarAllAsync <string>();

            Assert.AreEqual(2, tasks.Result.Count());
            tasks.Wait();
            Assert.IsTrue(tasks.IsCompleted);

            foreach (string result in tasks.Result)
            {
                Assert.AreEqual("HelloWorld", result);
            }
        }