Skip to content
This repository was archived by the owner on Apr 20, 2024. It is now read-only.

Commit 9e93d86

Browse files
author
Morten Turn Pedersen
committed
Made unit tests for get list and removed type for order by
1 parent 691a19e commit 9e93d86

File tree

3 files changed

+137
-7
lines changed

3 files changed

+137
-7
lines changed

NetCoreEntityFramework.Tests/EntityRepositoryTests.cs

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
using AutoFixture.NUnit3;
22
using Microsoft.EntityFrameworkCore;
3+
using Nodes.NetCore.EntityFramework.Enums;
34
using Nodes.NetCore.EntityFramework.Tests.Mocks;
45
using NUnit.Framework;
56
using System;
7+
using System.Collections.Generic;
8+
using System.Linq;
69
using System.Threading.Tasks;
710
using TestContext = Nodes.NetCore.EntityFramework.Tests.Mocks.TestContext;
811

@@ -14,6 +17,7 @@ public class EntityRepositoryTests
1417
private TestContext _context;
1518
private TestEntity _entity;
1619
private TestEntity _deletedEntity;
20+
private IEnumerable<TestEntity> _listEntities;
1721

1822
[SetUp]
1923
public void Setup()
@@ -50,6 +54,9 @@ public void Setup()
5054
_context.Table.Add(_entity);
5155
_context.Table.Add(_deletedEntity);
5256

57+
_listEntities = GetTestList();
58+
_context.Table.AddRange(_listEntities);
59+
5360
_context.SaveChanges();
5461

5562
_repository = new TestEntityRepository(_context);
@@ -99,6 +106,129 @@ public void AddThrowsExceptionIfEntityIsNull()
99106
}
100107
#endregion
101108

109+
#region List
110+
[Test]
111+
public async Task GetListReturnsAllNotDeleted()
112+
{
113+
var entities = await _repository.GetList();
114+
115+
Assert.AreEqual(_listEntities.Count() + 1, entities.Count());
116+
}
117+
118+
[Test]
119+
public async Task GetListReturnsAll()
120+
{
121+
var entities = await _repository.GetList(null, null, OrderBy.Ascending, GetListMode.IncludeDeleted);
122+
123+
Assert.AreEqual(_listEntities.Count() + 2, entities.Count());
124+
}
125+
126+
[Test]
127+
public async Task GetListReturnsAllDeleted()
128+
{
129+
var entities = await _repository.GetList(null, null, OrderBy.Ascending, GetListMode.OnlyDeleted);
130+
131+
Assert.AreEqual(1, entities.Count());
132+
}
133+
134+
[Test]
135+
public async Task GetListWhere()
136+
{
137+
var entities = await _repository.GetList(x => x.Property == "b");
138+
139+
Assert.AreEqual(1, entities.Count());
140+
Assert.AreSame(_listEntities.First(x => x.Property == "b"), entities.ElementAt(0));
141+
}
142+
143+
[Test]
144+
public async Task GetListOrderBy()
145+
{
146+
var entities = await _repository.GetList(x => x.Property.Length == 1, x => x.Property);
147+
148+
Assert.AreEqual(_listEntities.Count(), entities.Count());
149+
Assert.AreSame(_listEntities.First(x => x.Property == "a"), entities.ElementAt(0));
150+
Assert.AreSame(_listEntities.First(x => x.Property == "b"), entities.ElementAt(1));
151+
Assert.AreSame(_listEntities.First(x => x.Property == "c"), entities.ElementAt(2));
152+
Assert.AreSame(_listEntities.First(x => x.Property == "d"), entities.ElementAt(3));
153+
Assert.AreSame(_listEntities.First(x => x.Property == "e"), entities.ElementAt(4));
154+
Assert.AreSame(_listEntities.First(x => x.Property == "f"), entities.ElementAt(5));
155+
Assert.AreSame(_listEntities.First(x => x.Property == "g"), entities.ElementAt(6));
156+
Assert.AreSame(_listEntities.First(x => x.Property == "h"), entities.ElementAt(7));
157+
Assert.AreSame(_listEntities.First(x => x.Property == "i"), entities.ElementAt(8));
158+
Assert.AreSame(_listEntities.First(x => x.Property == "j"), entities.ElementAt(9));
159+
Assert.AreSame(_listEntities.First(x => x.Property == "k"), entities.ElementAt(10));
160+
Assert.AreSame(_listEntities.First(x => x.Property == "l"), entities.ElementAt(11));
161+
Assert.AreSame(_listEntities.First(x => x.Property == "m"), entities.ElementAt(12));
162+
Assert.AreSame(_listEntities.First(x => x.Property == "n"), entities.ElementAt(13));
163+
}
164+
165+
[Test]
166+
public async Task GetListOrderByDescending()
167+
{
168+
var entities = await _repository.GetList(x => x.Property.Length == 1, x => x.Property, OrderBy.Descending);
169+
170+
Assert.AreEqual(_listEntities.Count(), entities.Count());
171+
Assert.AreSame(_listEntities.First(x => x.Property == "n"), entities.ElementAt(0));
172+
Assert.AreSame(_listEntities.First(x => x.Property == "m"), entities.ElementAt(1));
173+
Assert.AreSame(_listEntities.First(x => x.Property == "l"), entities.ElementAt(2));
174+
Assert.AreSame(_listEntities.First(x => x.Property == "k"), entities.ElementAt(3));
175+
Assert.AreSame(_listEntities.First(x => x.Property == "j"), entities.ElementAt(4));
176+
Assert.AreSame(_listEntities.First(x => x.Property == "i"), entities.ElementAt(5));
177+
Assert.AreSame(_listEntities.First(x => x.Property == "h"), entities.ElementAt(6));
178+
Assert.AreSame(_listEntities.First(x => x.Property == "g"), entities.ElementAt(7));
179+
Assert.AreSame(_listEntities.First(x => x.Property == "f"), entities.ElementAt(8));
180+
Assert.AreSame(_listEntities.First(x => x.Property == "e"), entities.ElementAt(9));
181+
Assert.AreSame(_listEntities.First(x => x.Property == "d"), entities.ElementAt(10));
182+
Assert.AreSame(_listEntities.First(x => x.Property == "c"), entities.ElementAt(11));
183+
Assert.AreSame(_listEntities.First(x => x.Property == "b"), entities.ElementAt(12));
184+
Assert.AreSame(_listEntities.First(x => x.Property == "a"), entities.ElementAt(13));
185+
}
186+
187+
[Test]
188+
public async Task GetListPaginated()
189+
{
190+
const int pageSize = 6;
191+
192+
var entities = await _repository.GetList(1, pageSize);
193+
var entitiesLastPage = await _repository.GetList(3, pageSize);
194+
195+
Assert.AreEqual(pageSize, entities.Count());
196+
Assert.AreEqual(3, entitiesLastPage.Count());
197+
}
198+
199+
private IEnumerable<TestEntity> GetTestList()
200+
{
201+
return new List<TestEntity>
202+
{
203+
GetTestEntity("a"),
204+
GetTestEntity("b"),
205+
GetTestEntity("c"),
206+
GetTestEntity("d"),
207+
GetTestEntity("e"),
208+
GetTestEntity("f"),
209+
GetTestEntity("g"),
210+
GetTestEntity("h"),
211+
GetTestEntity("i"),
212+
GetTestEntity("j"),
213+
GetTestEntity("k"),
214+
GetTestEntity("l"),
215+
GetTestEntity("m"),
216+
GetTestEntity("n")
217+
};
218+
}
219+
220+
private TestEntity GetTestEntity(string property)
221+
{
222+
return new TestEntity
223+
{
224+
Id = Guid.NewGuid(),
225+
Created = DateTime.UtcNow,
226+
Updated = DateTime.UtcNow,
227+
Property = property
228+
};
229+
}
230+
#endregion
231+
102232
#region Get
103233
[Test]
104234
public async Task GetValidEntityReturnsEntity()

NetCoreEntityFramework/NetCoreEntityFramework.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<PropertyGroup>
44
<TargetFramework>netstandard2.0</TargetFramework>
55
<PackageId>Nodes.NetCore.EntityFramework.Helpers</PackageId>
6-
<Version>1.0.0</Version>
6+
<Version>1.1.0</Version>
77
<Authors>Nodes</Authors>
88
<Company>Nodes</Company>
99
<Product>.NET Core Entity Framework Helpers</Product>

NetCoreEntityFramework/Repositories/EntityRepository.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ public async Task<TEntity> Get(Guid id, bool includeDeleted = false)
4141
/// <param name="orderBy">To order by ascending or descending.</param>
4242
/// <param name="mode">Whether to include deleted or not.</param>
4343
/// <exception cref="ArgumentException"></exception>
44-
public async Task<IEnumerable<TEntity>> GetList<TKey>(
44+
public async Task<IEnumerable<TEntity>> GetList(
4545
[Range(1, int.MaxValue)] int page,
4646
[Range(1, int.MaxValue)] int pageSize,
4747
Expression<Func<TEntity, bool>> where = null,
48-
Expression<Func<TEntity, TKey>> orderByExpression = null,
48+
Expression<Func<TEntity, object>> orderByExpression = null,
4949
OrderBy orderBy = OrderBy.Ascending,
5050
GetListMode mode = GetListMode.ExcludeDeleted)
5151
{
@@ -73,9 +73,9 @@ public async Task<IEnumerable<TEntity>> GetList<TKey>(
7373
/// <param name="orderBy">To order by ascending or descending.</param>
7474
/// <param name="mode">Whether to include deleted or not.</param>
7575
/// <exception cref="ArgumentException"></exception>
76-
public async Task<IEnumerable<TEntity>> GetList<TKey>(
76+
public async Task<IEnumerable<TEntity>> GetList(
7777
Expression<Func<TEntity, bool>> where = null,
78-
Expression<Func<TEntity, TKey>> orderByExpression = null,
78+
Expression<Func<TEntity, object>> orderByExpression = null,
7979
OrderBy orderBy = OrderBy.Ascending,
8080
GetListMode mode = GetListMode.ExcludeDeleted)
8181
{
@@ -201,9 +201,9 @@ public void Dispose()
201201
Context.SaveChanges();
202202
}
203203

204-
private IQueryable<TEntity> GetQueryable<TKey>(
204+
private IQueryable<TEntity> GetQueryable(
205205
Expression<Func<TEntity, bool>> where = null,
206-
Expression<Func<TEntity, TKey>> orderByExpression = null,
206+
Expression<Func<TEntity, object>> orderByExpression = null,
207207
OrderBy orderBy = OrderBy.Ascending,
208208
GetListMode mode = GetListMode.ExcludeDeleted)
209209
{

0 commit comments

Comments
 (0)