/
ExecutingStoredProcedures.cs
70 lines (66 loc) · 2.37 KB
/
ExecutingStoredProcedures.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System;
using System.Linq;
using FluentAssertions;
using NUnit.Framework;
using SqlRepo.SqlServer.IntegrationTests.Model;
namespace SqlRepo.SqlServer.IntegrationTests.Examples
{
[TestFixture]
public class ExecutingStoredProcedures : ExampleBase
{
[Test]
public void QueryWithoutParameters()
{
var result = this.RepositoryFactory.Create<Contact>()
.ExecuteQueryProcedure()
.WithName("FetchAllContacts")
.Go()
.ToList();
result.Should()
.NotBeNullOrEmpty();
result.Count.Should()
.BeGreaterOrEqualTo(3);
}
[Test]
public void QueryWithParameters()
{
const int ExpectedId = 1;
var result = this.RepositoryFactory.Create<Contact>()
.ExecuteQueryProcedure()
.WithName("GetContactById")
.WithParameter("@id", ExpectedId)
.Go()
.ToList();
result.Should()
.NotBeNullOrEmpty();
result.Count.Should()
.BeGreaterOrEqualTo(1);
result.First()
.Id.Should()
.Be(ExpectedId);
}
[Test]
public void NonQueryWithoutParameters()
{
const int ExpectedRowsAffected = 1;
var result = this.RepositoryFactory.Create<Contact>()
.ExecuteNonQueryProcedure()
.WithName("LogStartup")
.Go();
result.Should().Be(ExpectedRowsAffected);
}
[Test]
public void NonQueryWithParameters()
{
const int ExpectedRowsAffected = 1;
var result = this.RepositoryFactory.Create<Contact>()
.ExecuteNonQueryProcedure()
.WithName("SetLastName")
.WithParameter("@id", 1)
.WithParameter("@lastName", "Hanson")
.Go();
result.Should()
.Be(ExpectedRowsAffected);
}
}
}