Skip to content

Commit f0119b2

Browse files
author
Jeff Treuting
committed
Added tests using predicates instead of specifications in Find and FindAll
1 parent afbef07 commit f0119b2

2 files changed

Lines changed: 71 additions & 0 deletions

File tree

SharpRepository.Tests.Integration/RepositoryFindAllTests.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,19 @@ public void FindAll_Should_Return_All_Items_Which_Satisfy_Specification(IReposit
2626
result.Count().ShouldEqual(1);
2727
}
2828

29+
[ExecuteForAllRepositories]
30+
public void FindAll_Should_Return_All_Items_Which_Satisfy_Predicate(IRepository<Contact, string> repository)
31+
{
32+
for (int i = 1; i <= 3; i++)
33+
{
34+
var contact = new Contact { Name = "Test User " + i };
35+
repository.Add(contact);
36+
}
37+
38+
var result = repository.FindAll(p => p.Name == "Test User 1"); // Note: Raven doesn't like p.Name.Equals("...");
39+
result.Count().ShouldEqual(1);
40+
}
41+
2942
[ExecuteForAllRepositories]
3043
public void FindAll_Should_Return_All_Items_Which_Satisfy_Specification_With_Paging(IRepository<Contact, string> repository)
3144
{

SharpRepository.Tests.Integration/RepositoryFindTests.cs

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,19 @@ public void Find_Should_Return_Single_Item_Which_Satisfies_Specification(IReposi
2424
result.Name.ShouldEqual("Test User 1");
2525
}
2626

27+
[ExecuteForAllRepositories]
28+
public void Find_Should_Return_Single_Item_Which_Satisfies_Predicate(IRepository<Contact, string> repository)
29+
{
30+
for (int i = 1; i <= 3; i++)
31+
{
32+
var contact = new Contact { Name = "Test User " + i };
33+
repository.Add(contact);
34+
}
35+
36+
var result = repository.Find(p => p.Name == "Test User 1");
37+
result.Name.ShouldEqual("Test User 1");
38+
}
39+
2740
[ExecuteForAllRepositories]
2841
public void Find_Should_Return_Single_Item_Which_Satisfies_Composite_Specification(IRepository<Contact, string> repository)
2942
{
@@ -37,6 +50,19 @@ public void Find_Should_Return_Single_Item_Which_Satisfies_Composite_Specificati
3750
result.Name.ShouldEqual("Test User 1");
3851
}
3952

53+
[ExecuteForAllRepositories]
54+
public void Find_Should_Return_Single_Item_Which_Satisfies_Composite_Predicate(IRepository<Contact, string> repository)
55+
{
56+
for (int i = 1; i <= 3; i++)
57+
{
58+
var contact = new Contact { Name = "Test User " + i };
59+
repository.Add(contact);
60+
}
61+
62+
var result = repository.Find(p => p.Name == "Test User 1" || p.Name == "Test User 1000");
63+
result.Name.ShouldEqual("Test User 1");
64+
}
65+
4066
[ExecuteForAllRepositories]
4167
public void Find_Should_Return_First_Ordered_Item_Which_Satisfies_Specification(IRepository<Contact, string> repository)
4268
{
@@ -53,6 +79,22 @@ public void Find_Should_Return_First_Ordered_Item_Which_Satisfies_Specification(
5379
result2.Name.ShouldEqual("Test User 1");
5480
}
5581

82+
[ExecuteForAllRepositories]
83+
public void Find_Should_Return_First_Ordered_Item_Which_Satisfies_Predicate(IRepository<Contact, string> repository)
84+
{
85+
for (int i = 1; i <= 3; i++)
86+
{
87+
var contact = new Contact { Name = "Test User " + i };
88+
repository.Add(contact);
89+
}
90+
91+
var result = repository.Find(p => p.Name.StartsWith("Test"), new SortingOptions<Contact>("Name", true));
92+
result.Name.ShouldEqual("Test User 3");
93+
94+
var result2 = repository.Find(p => p.Name.StartsWith("Test"), new SortingOptions<Contact>("Name", false));
95+
result2.Name.ShouldEqual("Test User 1");
96+
}
97+
5698
[ExecuteForAllRepositories]
5799
public void Find_Should_Return_First_Ordered_Item_Which_Satisfies_Specification_WIth_Sorting_Predicate(IRepository<Contact, string> repository)
58100
{
@@ -68,5 +110,21 @@ public void Find_Should_Return_First_Ordered_Item_Which_Satisfies_Specification_
68110
var result2 = repository.Find(new Specification<Contact>(p => p.Name.StartsWith("Test")), new SortingOptions<Contact, string>(c => c.Name, false));
69111
result2.Name.ShouldEqual("Test User 1");
70112
}
113+
114+
[ExecuteForAllRepositories]
115+
public void Find_Should_Return_First_Ordered_Item_Which_Satisfies_Predicate_WIth_Sorting_Predicate(IRepository<Contact, string> repository)
116+
{
117+
for (int i = 1; i <= 3; i++)
118+
{
119+
var contact = new Contact { Name = "Test User " + i };
120+
repository.Add(contact);
121+
}
122+
123+
var result = repository.Find(p => p.Name.StartsWith("Test"), new SortingOptions<Contact, string>(c => c.Name, true));
124+
result.Name.ShouldEqual("Test User 3");
125+
126+
var result2 = repository.Find(p => p.Name.StartsWith("Test"), new SortingOptions<Contact, string>(c => c.Name, false));
127+
result2.Name.ShouldEqual("Test User 1");
128+
}
71129
}
72130
}

0 commit comments

Comments
 (0)