Skip to content

Commit e4339fd

Browse files
committed
Adding more tests
1 parent 14fc24f commit e4339fd

File tree

3 files changed

+166
-11
lines changed

3 files changed

+166
-11
lines changed

src/DataAbstractions.Dapper.TestDb/SeedScript.PostDeployment.sql

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,13 @@ INSERT INTO [dbo].[Employee]
3939
([Id]
4040
,[CompanyId]
4141
,[DepartmentId]
42-
,[Name]
42+
,[FirstName]
43+
,[LastName]
4344
,[Title])
4445
VALUES
45-
(1, 1, 3, 'John Doe', 'Developer'),
46-
(2, 2, 1, 'Jane Doe', 'System Admin'),
47-
(3, 3, 2, 'Mike Smith', 'Account Manager')
46+
(1, 1, 3, 'John', 'Doe', 'Developer'),
47+
(2, 2, 1, 'Jane', 'Doe', 'System Admin'),
48+
(3, 3, 2, 'Mike', 'Smith', 'Account Manager')
4849
GO
4950

5051

src/DataAbstractions.Dapper.TestDb/Tables/Employee.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
[Id] INT NOT NULL PRIMARY KEY,
44
[CompanyId] INT NOT NULL,
55
[DepartmentId] INT NOT NULL,
6-
[Name] NVARCHAR(50) NULL,
6+
[FirstName] NVARCHAR(50) NULL,
7+
[LastName] NVARCHAR(50) NULL,
78
[Title] NVARCHAR(50) NULL
89
)

src/DataAbstractions.Dapper.Tests/DataAccessorShould.cs

Lines changed: 159 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public async void WorkWithQueryAsync()
3535
}
3636

3737
[Fact]
38-
public async void WorkWithQueryAsyncOverload1()
38+
public async void WorkWithQueryAsyncCmdDefParameter()
3939
{
4040

4141
using var dataAccessor = CreateDataAccessor();
@@ -54,9 +54,27 @@ public async void WorkWithQueryAsyncOverload1()
5454
}
5555

5656

57+
[Fact]
58+
public async void WorkWithQueryFirstAsync()
59+
{
60+
61+
using var dataAccessor = CreateDataAccessor();
62+
63+
dataAccessor.Open();
64+
65+
using var transaction = dataAccessor.BeginTransaction();
66+
67+
var result = await dataAccessor.QueryFirstAsync("select * from Employee where lastname = @LastName order by id", new { LastName = "Doe" }, transaction, null, commandType: System.Data.CommandType.Text);
68+
int? id = result.Id;
69+
string firstName = result.FirstName;
70+
string lastName = result.LastName;
71+
id.Should().Be(1);
72+
firstName.Should().Be("John");
73+
lastName.Should().Be("Doe");
74+
}
5775

5876
[Fact]
59-
public async void WorkWithQueryAsyncOfT()
77+
public async void WorkWithQueryFirstAsyncCmdDefParameter()
6078
{
6179

6280
using var dataAccessor = CreateDataAccessor();
@@ -65,22 +83,157 @@ public async void WorkWithQueryAsyncOfT()
6583

6684
using var transaction = dataAccessor.BeginTransaction();
6785

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);
86+
var definition = new CommandDefinition("select * from Employee where lastname = @LastName order by id", new { LastName = "Doe" }, transaction, null, commandType: System.Data.CommandType.Text, CommandFlags.Buffered, default);
87+
88+
var result = await dataAccessor.QueryFirstAsync(definition);
89+
int? id = result.Id;
90+
string firstName = result.FirstName;
91+
string lastName = result.LastName;
92+
id.Should().Be(1);
93+
firstName.Should().Be("John");
94+
lastName.Should().Be("Doe");
95+
}
96+
97+
[Fact]
98+
public async void WorkWithQueryFirstOrDefaultAsync()
99+
{
100+
101+
using var dataAccessor = CreateDataAccessor();
102+
103+
dataAccessor.Open();
71104

105+
using var transaction = dataAccessor.BeginTransaction();
106+
107+
var result = await dataAccessor.QueryFirstOrDefaultAsync("select * from Employee where lastname = @LastName order by id", new { LastName = "Doe" }, transaction, null, commandType: System.Data.CommandType.Text);
108+
int? id = result.Id;
109+
string firstName = result.FirstName;
110+
string lastName = result.LastName;
111+
id.Should().Be(1);
112+
firstName.Should().Be("John");
113+
lastName.Should().Be("Doe");
114+
}
115+
116+
[Fact]
117+
public async void WorkWithQueryFirstOrDefaultAsyncCmdDefParameter()
118+
{
119+
120+
using var dataAccessor = CreateDataAccessor();
121+
122+
dataAccessor.Open();
123+
124+
using var transaction = dataAccessor.BeginTransaction();
125+
126+
var definition = new CommandDefinition("select * from Employee where lastname = @LastName order by id", new { LastName = "Doe" }, transaction, null, commandType: System.Data.CommandType.Text, CommandFlags.Buffered, default);
127+
128+
var result = await dataAccessor.QueryFirstOrDefaultAsync(definition);
129+
int? id = result.Id;
130+
string firstName = result.FirstName;
131+
string lastName = result.LastName;
132+
id.Should().Be(1);
133+
firstName.Should().Be("John");
134+
lastName.Should().Be("Doe");
135+
}
136+
137+
138+
[Fact]
139+
public async void WorkWithQuerySingleOrDefaultAsync()
140+
{
141+
142+
using var dataAccessor = CreateDataAccessor();
143+
144+
dataAccessor.Open();
145+
146+
using var transaction = dataAccessor.BeginTransaction();
147+
148+
var result = await dataAccessor.QuerySingleOrDefaultAsync("select * from Employee where Id = @Id", new { Id = 2 }, transaction, null, commandType: System.Data.CommandType.Text);
149+
int? id = result.Id;
150+
string firstName = result.FirstName;
151+
string lastName = result.LastName;
152+
id.Should().Be(2);
153+
firstName.Should().Be("Jane");
154+
lastName.Should().Be("Doe");
155+
}
156+
157+
[Fact]
158+
public async void WorkWithQuerySingleOrDefaultAsyncCmdDefParameter()
159+
{
160+
161+
using var dataAccessor = CreateDataAccessor();
162+
163+
dataAccessor.Open();
164+
165+
using var transaction = dataAccessor.BeginTransaction();
166+
167+
var definition = new CommandDefinition("select * from Employee where Id = @Id", new { Id = 2 }, transaction, null, commandType: System.Data.CommandType.Text, CommandFlags.Buffered, default);
168+
169+
var result = await dataAccessor.QuerySingleOrDefaultAsync(definition);
170+
int? id = result.Id;
171+
string firstName = result.FirstName;
172+
string lastName = result.LastName;
173+
id.Should().Be(2);
174+
firstName.Should().Be("Jane");
175+
lastName.Should().Be("Doe");
72176
}
73177

74178
[Fact]
75179
public async void WorkWithQuerySingleAsync()
76180
{
77181

78182
using var dataAccessor = CreateDataAccessor();
79-
var result = await dataAccessor.QuerySingleAsync<Company>("select * from Company where id = 1", commandType: System.Data.CommandType.Text);
183+
184+
dataAccessor.Open();
185+
186+
using var transaction = dataAccessor.BeginTransaction();
187+
188+
var result = await dataAccessor.QuerySingleAsync("select * from Employee where Id = @Id", new { Id = 2 }, transaction, null, commandType: System.Data.CommandType.Text);
189+
int? id = result.Id;
190+
string firstName = result.FirstName;
191+
string lastName = result.LastName;
192+
id.Should().Be(2);
193+
firstName.Should().Be("Jane");
194+
lastName.Should().Be("Doe");
195+
}
196+
197+
[Fact]
198+
public async void WorkWithQuerySingleAsyncCmdDefParameter()
199+
{
200+
201+
using var dataAccessor = CreateDataAccessor();
202+
203+
dataAccessor.Open();
204+
205+
using var transaction = dataAccessor.BeginTransaction();
206+
207+
var definition = new CommandDefinition("select * from Employee where Id = @Id", new { Id = 2 }, transaction, null, commandType: System.Data.CommandType.Text, CommandFlags.Buffered, default);
208+
209+
var result = await dataAccessor.QuerySingleAsync(definition);
210+
int? id = result.Id;
211+
string firstName = result.FirstName;
212+
string lastName = result.LastName;
213+
id.Should().Be(2);
214+
firstName.Should().Be("Jane");
215+
lastName.Should().Be("Doe");
216+
}
217+
218+
219+
[Fact]
220+
public async void WorkWithQueryAsyncOfT()
221+
{
222+
223+
using var dataAccessor = CreateDataAccessor();
224+
225+
dataAccessor.Open();
226+
227+
using var transaction = dataAccessor.BeginTransaction();
228+
229+
var result = await dataAccessor.QueryAsync<Company>("select * from Company where id = @Id", new { Id = 1 }, transaction, null, commandType: System.Data.CommandType.Text);
80230
var expected = new Company { Id = 1, Name = "Mock Company" };
81231
result.Should().BeEquivalentTo(expected);
232+
82233
}
83234

235+
236+
84237
[Fact]
85238
public async void WorkWithExecuteReaderAsync()
86239
{

0 commit comments

Comments
 (0)