Skip to content

Commit bf12b6b

Browse files
committed
Updated Dapper packages. Changed constructor signature to accept an IDbConnection instead of a DbConnection
1 parent 9b8517b commit bf12b6b

File tree

8 files changed

+80
-30
lines changed

8 files changed

+80
-30
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,18 @@ var person = await dataAccessor.QueryAsync<Person>(sql, new {Id});
2020

2121
Note: The dataAccessor should be disposed appropriately.
2222

23+
## IDataReaderAccessor Interface
24+
25+
IDataReaderAccessor encapsulates IDataReader extension methods. Use GetDataReaderAccessor() to convert the IDataReader object to an IDataReaderAccessor.
26+
27+
```csharp
28+
29+
var dataReader = await dataAccessor.ExecuteReaderAsync(sql);
30+
var dataReaderAccessor = dataAccessor.GetDataReaderAccessor(dataReader);
31+
var result = dataReaderAccessor.Parse<Person>();
32+
33+
```
34+
2335
## Dapper.Contrib
2436

2537
IDataAccessor includes the Dapper.Contrib extension methods
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup>
4+
<IncludeCompositeObjects>True</IncludeCompositeObjects>
5+
<TargetDatabaseName>TestDb</TargetDatabaseName>
6+
<DeployScriptFileName>DataAbstractions.Dapper.TestDb.sql</DeployScriptFileName>
7+
<ProfileVersionNumber>1</ProfileVersionNumber>
8+
<TargetConnectionString>Data Source=localhost;Integrated Security=True;Persist Security Info=False;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=False</TargetConnectionString>
9+
<BlockOnPossibleDataLoss>True</BlockOnPossibleDataLoss>
10+
<CreateNewDatabase>True</CreateNewDatabase>
11+
</PropertyGroup>
12+
</Project>

src/DataAbstractions.Dapper.Tests/DataAbstractions.Dapper.Tests.csproj

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,18 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="FluentAssertions" Version="5.10.3" />
11-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
12-
<PackageReference Include="System.Data.SqlClient" Version="4.8.2" />
13-
<PackageReference Include="xunit" Version="2.4.0" />
14-
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
15-
<PackageReference Include="coverlet.collector" Version="1.2.0" />
10+
<PackageReference Include="FluentAssertions" Version="6.4.0" />
11+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
12+
<PackageReference Include="System.Data.SqlClient" Version="4.8.3" />
13+
<PackageReference Include="xunit" Version="2.4.1" />
14+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
15+
<PrivateAssets>all</PrivateAssets>
16+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
17+
</PackageReference>
18+
<PackageReference Include="coverlet.collector" Version="3.1.0">
19+
<PrivateAssets>all</PrivateAssets>
20+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
21+
</PackageReference>
1622
</ItemGroup>
1723

1824
<ItemGroup>

src/DataAbstractions.Dapper.Tests/DataAccessorTests.cs

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Dapper;
22
using FluentAssertions;
3+
using System.Collections.Generic;
34
using System.Data.SqlClient;
45
using System.Linq;
56
using Xunit;
@@ -14,7 +15,7 @@ public DataAccessorTests()
1415

1516
public IDataAccessor CreateDataAccessor()
1617
{
17-
return new DataAccessor(new SqlConnection("Data Source=localhost;Database=TestDb;User ID=sa;Password=t3st#database"));
18+
return new DataAccessor(new SqlConnection("Data Source=localhost;Database=TestDb;Integrated Security=True;"));
1819
}
1920

2021
[Fact]
@@ -302,22 +303,9 @@ public async void QueryAsyncOfTWorks()
302303
using var transaction = dataAccessor.BeginTransaction();
303304

304305
var result = await dataAccessor.QueryAsync<Company>("select * from Company where id = @Id", new { Id = 1 }, transaction, null, commandType: System.Data.CommandType.Text);
305-
var expected = new Company { Id = 1, Name = "Mock Company" };
306+
var expected = new List<Company> { new Company { Id = 1, Name = "Mock Company" } };
306307
result.Should().BeEquivalentTo(expected);
307308

308309
}
309-
310-
311-
312-
[Fact]
313-
public async void ExecuteReaderAsyncWorks()
314-
{
315-
using var dataAccessor = CreateDataAccessor();
316-
var reader = await dataAccessor.ExecuteReaderAsync("select * from Company where id = 1");
317-
var dataReaderAccessor = dataAccessor.GetDataReaderAbstraction(reader);
318-
var result = dataReaderAccessor.Parse<Company>();
319-
var expected = new Company { Id = 1, Name = "Mock Company" };
320-
result.Should().BeEquivalentTo(expected);
321-
}
322310
}
323311
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using FluentAssertions;
2+
using System.Collections.Generic;
3+
using System.Data.SqlClient;
4+
using Xunit;
5+
6+
namespace DataAbstractions.Dapper.Tests
7+
{
8+
public class DataReaderAccessorTests
9+
{
10+
public DataReaderAccessorTests()
11+
{
12+
}
13+
14+
public IDataAccessor CreateDataAccessor()
15+
{
16+
return new DataAccessor(new SqlConnection("Data Source=localhost;Database=TestDb;Integrated Security=True;"));
17+
}
18+
19+
[Fact]
20+
public async void ExecuteReaderAsyncWorks()
21+
{
22+
using var dataAccessor = CreateDataAccessor();
23+
var reader = await dataAccessor.ExecuteReaderAsync("select * from Company where id = 1");
24+
var dataReaderAccessor = dataAccessor.GetDataReaderAccessor(reader);
25+
var result = dataReaderAccessor.Parse<Company>();
26+
var expected = new List<Company> { new Company { Id = 1, Name = "Mock Company" } };
27+
result.Should().BeEquivalentTo(expected);
28+
}
29+
}
30+
}

src/DataAbstractions.Dapper/DataAbstractions.Dapper.csproj

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,26 @@
22

33
<PropertyGroup>
44
<TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
5-
<Version>3.0.0</Version>
5+
<Version>3.1.0</Version>
66
<Authors>Andrew Sumido</Authors>
77
<Description>A light abstraction around Dapper and Dapper.Contrib that also maintains the behavior IDbConnection. This library facilitates a loosely coupled design and unit testing.</Description>
88
<PackageLicenseUrl></PackageLicenseUrl>
99
<PackageProjectUrl>https://github.com/codeapologist/DataAbstractions.Dapper</PackageProjectUrl>
1010
<PackageTags>Dapper Dapper.Contrib IDbConnection Abstraction Unit Testing Interface Testability Tests Mock Unit Test</PackageTags>
11-
<PackageReleaseNotes>Upgraded Dapper to v2.0.35 and Dapper.Contrib to v2.0.35. Bumping up major version because Dapper introduced a slight breaking change in version 2.0.4.</PackageReleaseNotes>
11+
<PackageReleaseNotes>Upgraded Dapper to v2.0.123 and Dapper.Contrib to v2.0.78
12+
Changed constructor signature to accept an IDbConnection instead of a DbConnection (non-breaking change)
13+
Implemented an abstraction for IDataReader and associated extension methods</PackageReleaseNotes>
1214
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
1315
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
1416
<PackageLicenseFile>LICENSE</PackageLicenseFile>
15-
<AssemblyVersion>3.0.0.0</AssemblyVersion>
16-
<FileVersion>3.0.0.0</FileVersion>
17+
<AssemblyVersion>3.1.0.0</AssemblyVersion>
18+
<FileVersion>3.1.0.0</FileVersion>
1719
<RepositoryUrl>https://github.com/codeapologist/DataAbstractions.Dapper</RepositoryUrl>
1820
</PropertyGroup>
1921

2022
<ItemGroup>
21-
<PackageReference Include="Dapper" Version="2.0.35" />
22-
<PackageReference Include="Dapper.Contrib" Version="2.0.35" />
23+
<PackageReference Include="Dapper" Version="2.0.123" />
24+
<PackageReference Include="Dapper.Contrib" Version="2.0.78" />
2325
</ItemGroup>
2426

2527
<ItemGroup>

src/DataAbstractions.Dapper/DataAccessor/DataAccessor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ public partial class DataAccessor : IDataAccessor
88
{
99
private readonly IDbConnection _connection;
1010

11-
public DataAccessor(DbConnection connection)
11+
public DataAccessor(IDbConnection connection)
1212
{
1313
_connection = connection ?? throw new ArgumentNullException(nameof(connection));
1414
}
1515

1616
public IDbConnection GetUnderlyingConnection() => _connection;
1717

18-
public IDataReaderAccessor GetDataReaderAbstraction(IDataReader reader)
18+
public IDataReaderAccessor GetDataReaderAccessor(IDataReader reader)
1919
{
2020
return new DataReaderAccessor(reader);
2121
}

src/DataAbstractions.Dapper/Interfaces/IDataAccessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public partial interface IDataAccessor : IDbConnection
66
{
77
IDbConnection GetUnderlyingConnection();
88

9-
IDataReaderAccessor GetDataReaderAbstraction(IDataReader reader);
9+
IDataReaderAccessor GetDataReaderAccessor(IDataReader reader);
1010
}
1111

1212

0 commit comments

Comments
 (0)