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)); }
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); }
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); } }