Skip to content

Commit 14fc24f

Browse files
committed
Added more tests around QueryAsync
1 parent 52e20a5 commit 14fc24f

File tree

1 file changed

+67
-5
lines changed

1 file changed

+67
-5
lines changed

src/DataAbstractions.Dapper.Tests/DataAccessorShould.cs

Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,92 @@
1+
using Dapper;
12
using FluentAssertions;
23
using System.Data.SqlClient;
4+
using System.Linq;
35
using Xunit;
46

57
namespace DataAbstractions.Dapper.Tests
68
{
79
public class DataAccessorShould
810
{
9-
private IDataAccessor _dataAccessor;
1011
public DataAccessorShould()
1112
{
12-
_dataAccessor = new DataAccessor(new SqlConnection("Data Source=localhost;Database=TestDb;User ID=sa;Password=t3st#database"));
13+
}
14+
15+
public IDataAccessor CreateDataAccessor()
16+
{
17+
return new DataAccessor(new SqlConnection("Data Source=localhost;Database=TestDb;User ID=sa;Password=t3st#database"));
18+
}
19+
20+
[Fact]
21+
public async void WorkWithQueryAsync()
22+
{
23+
24+
using var dataAccessor = CreateDataAccessor();
25+
26+
dataAccessor.Open();
27+
28+
using var transaction = dataAccessor.BeginTransaction();
29+
30+
var result = await dataAccessor.QueryAsync("select * from Company where id = @Id", new { Id = 1 }, transaction, null, commandType: System.Data.CommandType.Text);
31+
int? id = result.ToList().Single().Id;
32+
string name = result.ToList().Single().Name;
33+
id.Should().Be(1);
34+
name.Should().Be("Mock Company");
35+
}
36+
37+
[Fact]
38+
public async void WorkWithQueryAsyncOverload1()
39+
{
40+
41+
using var dataAccessor = CreateDataAccessor();
42+
43+
dataAccessor.Open();
44+
45+
using var transaction = dataAccessor.BeginTransaction();
46+
47+
var definition = new CommandDefinition("select * from Company where id = @Id", new { Id = 1 }, transaction, null, commandType: System.Data.CommandType.Text, CommandFlags.Buffered, default);
48+
49+
var result = await dataAccessor.QueryAsync(definition);
50+
int? id = result.ToList().Single().Id;
51+
string name = result.ToList().Single().Name;
52+
id.Should().Be(1);
53+
name.Should().Be("Mock Company");
54+
}
55+
56+
57+
58+
[Fact]
59+
public async void WorkWithQueryAsyncOfT()
60+
{
61+
62+
using var dataAccessor = CreateDataAccessor();
63+
64+
dataAccessor.Open();
65+
66+
using var transaction = dataAccessor.BeginTransaction();
67+
68+
var result = await dataAccessor.QueryAsync<Company>("select * from Company where id = @Id", new { Id = 1 }, transaction, null, commandType: System.Data.CommandType.Text);
69+
var expected = new Company { Id = 1, Name = "Mock Company" };
70+
result.Should().BeEquivalentTo(expected);
71+
1372
}
1473

1574
[Fact]
1675
public async void WorkWithQuerySingleAsync()
1776
{
18-
var result = await _dataAccessor.QuerySingleAsync<Company>("select * from Company where id = 1", commandType: System.Data.CommandType.Text);
77+
78+
using var dataAccessor = CreateDataAccessor();
79+
var result = await dataAccessor.QuerySingleAsync<Company>("select * from Company where id = 1", commandType: System.Data.CommandType.Text);
1980
var expected = new Company { Id = 1, Name = "Mock Company" };
2081
result.Should().BeEquivalentTo(expected);
2182
}
2283

2384
[Fact]
2485
public async void WorkWithExecuteReaderAsync()
2586
{
26-
var reader = await _dataAccessor.ExecuteReaderAsync("select * from Company where id = 1");
27-
var dataReaderAccessor = _dataAccessor.GetDataReaderAbstraction(reader);
87+
using var dataAccessor = CreateDataAccessor();
88+
var reader = await dataAccessor.ExecuteReaderAsync("select * from Company where id = 1");
89+
var dataReaderAccessor = dataAccessor.GetDataReaderAbstraction(reader);
2890
var result = dataReaderAccessor.Parse<Company>();
2991
var expected = new Company { Id = 1, Name = "Mock Company" };
3092
result.Should().BeEquivalentTo(expected);

0 commit comments

Comments
 (0)