|
| 1 | +using Dapper; |
1 | 2 | using FluentAssertions; |
2 | 3 | using System.Data.SqlClient; |
| 4 | +using System.Linq; |
3 | 5 | using Xunit; |
4 | 6 |
|
5 | 7 | namespace DataAbstractions.Dapper.Tests |
6 | 8 | { |
7 | 9 | public class DataAccessorShould |
8 | 10 | { |
9 | | - private IDataAccessor _dataAccessor; |
10 | 11 | public DataAccessorShould() |
11 | 12 | { |
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 | + |
13 | 72 | } |
14 | 73 |
|
15 | 74 | [Fact] |
16 | 75 | public async void WorkWithQuerySingleAsync() |
17 | 76 | { |
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); |
19 | 80 | var expected = new Company { Id = 1, Name = "Mock Company" }; |
20 | 81 | result.Should().BeEquivalentTo(expected); |
21 | 82 | } |
22 | 83 |
|
23 | 84 | [Fact] |
24 | 85 | public async void WorkWithExecuteReaderAsync() |
25 | 86 | { |
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); |
28 | 90 | var result = dataReaderAccessor.Parse<Company>(); |
29 | 91 | var expected = new Company { Id = 1, Name = "Mock Company" }; |
30 | 92 | result.Should().BeEquivalentTo(expected); |
|
0 commit comments