-
Notifications
You must be signed in to change notification settings - Fork 2
/
IEnumerableTests.cs
62 lines (53 loc) · 2 KB
/
IEnumerableTests.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
using NUnit.Framework;
using System.Collections.Generic;
using Paginator;
using System.Linq;
namespace Tests
{
[TestFixture]
public class IEnumerableTests : TestBase
{
[Test, TestCaseSource(typeof(Seed), "List")]
public void ParamsTest(ICollection<Rate> Rates)
{
// Arrange
int perpage = 2;
int pages = GetPages(Rates.Count, perpage);
var result = Rates.Paginate(1, perpage);
Assert.AreEqual(2, result.ItemsPerPage);
Assert.AreEqual(1, result.Page);
Assert.AreEqual(Rates.Count, result.TotalItems);
Assert.AreEqual(pages, result.TotalPages);
}
[Test, TestCaseSource(typeof(Seed), "List")]
public void Empty(ICollection<Rate> Rates)
{
int perpage = 10;
int pages = GetPages(Rates.Count, perpage);
var result = Rates.Page();
Assert.IsNotNull(result);
Assert.AreEqual(1, result.Page);
Assert.AreEqual(Rates.Count, result.TotalItems);
Assert.AreEqual(pages, result.TotalPages);
}
[Test, TestCaseSource(typeof(Seed), "NumStrings")]
public void FuncTest(ICollection<string> nums)
{
int perpage = 5;
var result = nums.Paged(x => x.Equals("0"), 2, perpage, x => x);
int pages = GetPages(result.TotalItems, perpage);
Assert.AreEqual(2, result.Page);
Assert.AreEqual(5, result.ItemsPerPage);
Assert.AreEqual(pages, result.TotalPages);
}
[Test, TestCaseSource(typeof(Seed), "Pages")]
public void OrderByProperty(ICollection<Rate> Rates)
{
var result = Rates.ToPaginate(null, 1, 10, x=>x.Value, "desc");
Assert.IsNotNull(result);
Assert.AreEqual(1, result.Page);
Assert.AreEqual(Rates.Count, result.TotalItems);
Assert.Greater(result.Items.First().Value, result.Items.Last().Value);
}
}
}