public async Task Test_UnmappedProgram_RunsAndReturnsExpectedResult() { DatabasesConfiguration configuration = DatabasesConfiguration.Active; SqlProgram unmappedProgram = await configuration.GetSqlProgram("test2", "spReturnsScalar"); Assert.AreEqual("spReturnsScalar", unmappedProgram.Name); Assert.AreEqual("HelloWorld", await unmappedProgram.ExecuteScalarAsync <string>()); }
public async Task ExecuteScalarAsync_ExecutesAndReturnsExpectedResult() { SqlProgram scalarTest = await SqlProgram.Create((Connection)DifferentLocalDatabaseConnectionString, "spReturnsScalar"); Task <string> task = scalarTest.ExecuteScalarAsync <string>(); Assert.IsNotNull(task); task.Wait(); Assert.IsTrue(task.IsCompleted); Assert.AreEqual("HelloWorld", task.Result); }
public async Task ExecuteScalarAsync_WithParameter_ExecutesAndReturnsExpectedResult() { SqlProgram <string> scalarTest = await SqlProgram <string> .Create((Connection)DifferentLocalDatabaseConnectionString, "spTakesParamAndReturnsScalar", "@firstName"); string randomString = Random.RandomString(10, false); Task <string> task = scalarTest.ExecuteScalarAsync <string>(randomString); Assert.IsNotNull(task); task.Wait(); Assert.IsTrue(task.IsCompleted); Assert.AreEqual("Hello " + randomString, task.Result); }
public async Task Test_UnmappedProgramOnDifferentConnection_RunsAndReturnsExpectedResult() { DatabasesConfiguration configuration = DatabasesConfiguration.Active; // Get a program which does not use the default lbc. SqlProgram diffConnection = await configuration.GetSqlProgram("test", "spReturnsScalarString"); // Check name was not mapped Assert.AreEqual("spReturnsScalarString", diffConnection.Name); // Check the sproc runs Assert.AreEqual("HelloWorld", await diffConnection.ExecuteScalarAsync <string>()); }
public async Task ExecuteScalarAsync_WithParameterSetViaAction_ExecutesAndReturnsExpectedResult() { SqlProgram <string> scalarTest = await SqlProgram <string> .Create((Connection)DifferentLocalDatabaseConnectionString, "spTakesParamAndReturnsScalar"); string name = Random.RandomString(10, false); Task <string> task = scalarTest.ExecuteScalarAsync <string>(c => c.SetParameter("@firstName", name)); Assert.IsNotNull(task); task.Wait(); Assert.IsTrue(task.IsCompleted); // Note we won't get the full GUID back as the name is truncated. Assert.AreEqual("Hello " + name, task.Result); }
public async Task ExecuteScalarAsync_WithOutputParameters_ExecutesSuccessfully() { SqlProgram <int, Out <int>, Out <int> > program = await SqlProgram <int, Out <int>, Out <int> > .Create((Connection)LocalDatabaseConnectionString, "spOutputParameters"); const int inputVal = 123; const int inputOutputVal = 321; Out <int> inputOutput = new Out <int>(inputOutputVal); Out <int> output = new Out <int>(); string scalarResult = await program.ExecuteScalarAsync <string>(inputVal, inputOutput, output); Assert.AreEqual("<foo>bar</foo>", scalarResult); 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); }
public async Task TestScalarStringReturnsExpectedValue() { SqlProgram program = await DatabasesConfiguration.Active.GetSqlProgram( "test", ReturnsScalarProcedureName, null, true, false); Assert.IsNotNull(program, "Program is null"); string helloWorld = await program.ExecuteScalarAsync <string>(); Assert.IsTrue( String.Equals(helloWorld, ReturnsScalarProcedureResult), String.Format( "The values {0} and {1} are not equal", helloWorld, ReturnsScalarProcedureResult)); }
public async Task TestSqlProgram_ScalarWithParameters() { const string stringParam = "System"; const int intParam = -1; const decimal decimalParam = 100M; const bool boolParam = true; string expectedResult = String.Format( "{0} - {1} - {2:0.00} - {3}", stringParam, intParam, decimalParam, Convert.ToByte(boolParam)); SqlProgram <string, int, decimal, bool> program = await DatabasesConfiguration.Active.GetSqlProgram <string, int, decimal, bool>( "test", ReturnsScalarWithParamsProcedureName, "@stringParam", "@intParam", "@decimalParam", "@boolParam"); Assert.IsNotNull(program); string actualResult = await program.ExecuteScalarAsync <string>(stringParam, intParam, decimalParam, boolParam); Assert.AreEqual( expectedResult, actualResult, String.Format( "The string '{0}' (expected) is not equal to '{1}' (actual)", expectedResult, actualResult)); }