diff --git a/Dapper.MoqTests.Samples/Samples.cs b/Dapper.MoqTests.Samples/Samples.cs index 6a95e67..d0d769d 100644 --- a/Dapper.MoqTests.Samples/Samples.cs +++ b/Dapper.MoqTests.Samples/Samples.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Threading.Tasks; using System; +using System.Collections.Generic; using System.Threading; namespace Dapper.MoqTests.Samples @@ -61,7 +62,20 @@ public async Task VerifyQueryAsync() .Setup(f => f.OpenConnection()) .Returns(connection); - await repository.GetCarsAsync(); + var expectedCars = new List + { + new Car { Registration = "ABC123", Make = "Vauxhall", Model = "Astra" }, + new Car { Registration = "DEF456", Make = "Ford", Model = "Mondeo" } + }; + connection.Setup(c => c.QueryAsync(@"select * +from [Cars] +order by Make, Model", null, null, null, null)).ReturnsAsync(expectedCars); + + var result = await repository.GetCarsAsync(); + + Assert.That(result.Select(c => c.Registration), Is.EquivalentTo(new[] { "ABC123", "DEF456" })); + Assert.That(result.Select(c => c.Make), Is.EquivalentTo(new[] { "Vauxhall", "Ford" })); + Assert.That(result.Select(c => c.Model), Is.EquivalentTo(new[] { "Astra", "Mondeo" })); connection.Verify(c => c.QueryAsync(@"select * from [Cars] diff --git a/Dapper.MoqTests/MockDatabase/MockDatabase.cs b/Dapper.MoqTests/MockDatabase/MockDatabase.cs index e2eb1fb..544dc47 100644 --- a/Dapper.MoqTests/MockDatabase/MockDatabase.cs +++ b/Dapper.MoqTests/MockDatabase/MockDatabase.cs @@ -60,7 +60,9 @@ internal IDataReader ExecuteReader(MockDbCommand command, bool isAsync, Cancella var parametersLookup = command.GetParameterLookup(isAsync, cancellationToken); var parametersArray = method.GetValues(parametersLookup); - var result = method.Invoke(this, parametersArray); + var result = isAsync + ? TaskHelper.GetResultOfTask(method.Invoke(this, parametersArray)) + : method.Invoke(this, parametersArray); var reader = result as IDataReader; if (result == null) { @@ -108,4 +110,4 @@ private DataTableReader GetEmptyDataReader(IDbCommand command) } } } -} \ No newline at end of file +}