From 0e6f8b42213f4328f5c523a0e8641a6d8c714253 Mon Sep 17 00:00:00 2001 From: jurjenverbruggen Date: Mon, 4 May 2020 15:22:53 +0200 Subject: [PATCH 1/6] Added userrepo tests --- 3_Repositories.Tests/UserRepositoryTest.cs | 160 +++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 3_Repositories.Tests/UserRepositoryTest.cs diff --git a/3_Repositories.Tests/UserRepositoryTest.cs b/3_Repositories.Tests/UserRepositoryTest.cs new file mode 100644 index 00000000..190966e5 --- /dev/null +++ b/3_Repositories.Tests/UserRepositoryTest.cs @@ -0,0 +1,160 @@ +using Models; +using NUnit.Framework; +using Repositories.Tests.Base; +using Repositories.Tests.DataSources; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Repositories.Tests +{ + [TestFixture] + public class UserRepositoryTest : RepositoryTest + { + protected new IUserRepository Repository => (IUserRepository)base.Repository; + + [Test] + public async Task GetUserAsync_GoodFlow([UserDataSource]User entity) + { + DbContext.Add(entity); + await DbContext.SaveChangesAsync(); + + //Test + User retrieved = await Repository.GetUserAsync(entity.Id); + + Assert.AreEqual(entity, retrieved); + } + + [Test] + public async Task GetUserAsync_NotFound([UserDataSource]User entity) + { + //Test + User retrieved = await Repository.GetUserAsync(entity.Id); + + Assert.IsNull(retrieved); + } + + [Test] + public async Task RemoveUserAsync_GoodFlow([UserDataSource]User entity) + { + DbContext.Add(entity); + await DbContext.SaveChangesAsync(); + + //Test + bool removed = await Repository.RemoveUserAsync(entity.Id); + await DbContext.SaveChangesAsync(); + + User retrieved = await Repository.GetUserAsync(entity.Id); + + Assert.IsTrue(removed); + Assert.IsNull(retrieved); + } + + [Test] + public async Task RemoveUserAsync_NotFound([UserDataSource]User entity) + { + //Test + bool removed = await Repository.RemoveUserAsync(entity.Id); + await DbContext.SaveChangesAsync(); + + Assert.IsFalse(removed); + } + + /// + [Test] + public override Task AddAsyncTest_GoodFlow([UserDataSource]User entity) + { + return base.AddAsyncTest_GoodFlow(entity); + } + + /// + [Test] + public override void AddRangeTest_BadFlow_EmptyList() + { + base.AddRangeTest_BadFlow_EmptyList(); + } + + /// + [Test] + public override void AddRangeTest_BadFlow_Null() + { + base.AddRangeTest_BadFlow_Null(); + } + + /// + [Test] + public override Task AddRangeTest_GoodFlow([UserDataSource(50)]List entities) + { + return base.AddRangeTest_GoodFlow(entities); + } + + /// + [Test] + public override void AddTest_BadFlow_Null() + { + base.AddTest_BadFlow_Null(); + } + + /// + [Test] + public override Task FindAsyncTest_BadFlow_NotExists([UserDataSource]User entity) + { + return base.FindAsyncTest_BadFlow_NotExists(entity); + } + + /// + [Test] + public override Task FindAsyncTest_GoodFlow([UserDataSource]User entity) + { + return base.FindAsyncTest_GoodFlow(entity); + } + + /// + [Test] + public override Task GetAllAsyncTest_Badflow_Empty() + { + return base.GetAllAsyncTest_Badflow_Empty(); + } + + /// + [Test] + public override Task GetAllAsyncTest_GoodFlow([UserDataSource(50)]List entities) + { + return base.GetAllAsyncTest_GoodFlow(entities); + } + + /// + [Test] + public override Task RemoveAsyncTest_BadFlow_NotExists([UserDataSource]User entity) + { + return base.RemoveAsyncTest_BadFlow_NotExists(entity); + } + + /// + [Test] + public override Task RemoveAsyncTest_GoodFlow([UserDataSource]User entity) + { + return base.RemoveAsyncTest_GoodFlow(entity); + } + + /// + [Test] + public override Task UpdateTest_BadFlow_NotExists([UserDataSource]User entity, [UserDataSource]User updateEntity) + { + return base.UpdateTest_BadFlow_NotExists(entity, updateEntity); + } + + /// + [Test] + public override Task UpdateTest_BadFlow_Null([UserDataSource]User entity) + { + return base.UpdateTest_BadFlow_Null(entity); + } + + /// + [Test] + public override Task UpdateTest_GoodFlow([UserDataSource]User entity, [UserDataSource]User updateEntity) + { + return base.UpdateTest_GoodFlow(entity, updateEntity); + } + } +} From 065d5a5fad6f29b5eec88a6527967e744de3dced Mon Sep 17 00:00:00 2001 From: jurjenverbruggen Date: Mon, 4 May 2020 15:32:05 +0200 Subject: [PATCH 2/6] Added test comments --- 3_Repositories.Tests/UserRepositoryTest.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/3_Repositories.Tests/UserRepositoryTest.cs b/3_Repositories.Tests/UserRepositoryTest.cs index 190966e5..b780c14b 100644 --- a/3_Repositories.Tests/UserRepositoryTest.cs +++ b/3_Repositories.Tests/UserRepositoryTest.cs @@ -12,6 +12,9 @@ public class UserRepositoryTest : RepositoryTest { protected new IUserRepository Repository => (IUserRepository)base.Repository; + /// + /// User is retrieved correctly + /// [Test] public async Task GetUserAsync_GoodFlow([UserDataSource]User entity) { @@ -24,6 +27,9 @@ public async Task GetUserAsync_GoodFlow([UserDataSource]User entity) Assert.AreEqual(entity, retrieved); } + /// + /// User not added and thus not found in repo + /// [Test] public async Task GetUserAsync_NotFound([UserDataSource]User entity) { @@ -33,6 +39,9 @@ public async Task GetUserAsync_NotFound([UserDataSource]User entity) Assert.IsNull(retrieved); } + /// + /// User correctly removed from repo + /// [Test] public async Task RemoveUserAsync_GoodFlow([UserDataSource]User entity) { @@ -49,6 +58,11 @@ public async Task RemoveUserAsync_GoodFlow([UserDataSource]User entity) Assert.IsNull(retrieved); } + /// + /// User that was not in repo not found + /// + /// + /// [Test] public async Task RemoveUserAsync_NotFound([UserDataSource]User entity) { From 785b9521661ecb52756f27e75dde511fb9896cbf Mon Sep 17 00:00:00 2001 From: jurjenverbruggen Date: Mon, 4 May 2020 15:36:01 +0200 Subject: [PATCH 3/6] Added changelog record --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51eceb03..64cde05a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Setup basic unit test framework to ensure that the core functionality of the application works [#65] (https://github.com/DigitalExcellence/dex-backend/issues/65) - Added example unittests for other contributors [#74] (https://github.com/DigitalExcellence/dex-backend/issues/74) - Added issue & pull request templates (bug & report) - [#11](https://github.com/DigitalExcellence/dex-backend/issues/11) +- Added unittests for UserRepository ### Changed From 79274c49c8c98a412c071101733939b46bf17eaf Mon Sep 17 00:00:00 2001 From: jurjenverbruggen Date: Mon, 11 May 2020 13:53:48 +0200 Subject: [PATCH 4/6] Removed unnecessary parameters in tests --- 3_Repositories.Tests/UserRepositoryTest.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/3_Repositories.Tests/UserRepositoryTest.cs b/3_Repositories.Tests/UserRepositoryTest.cs index b780c14b..9f72e543 100644 --- a/3_Repositories.Tests/UserRepositoryTest.cs +++ b/3_Repositories.Tests/UserRepositoryTest.cs @@ -31,10 +31,12 @@ public async Task GetUserAsync_GoodFlow([UserDataSource]User entity) /// User not added and thus not found in repo /// [Test] - public async Task GetUserAsync_NotFound([UserDataSource]User entity) + public async Task GetUserAsync_NotFound() { + int randomId = 74; + //Test - User retrieved = await Repository.GetUserAsync(entity.Id); + User retrieved = await Repository.GetUserAsync(randomId); Assert.IsNull(retrieved); } @@ -64,10 +66,12 @@ public async Task RemoveUserAsync_GoodFlow([UserDataSource]User entity) /// /// [Test] - public async Task RemoveUserAsync_NotFound([UserDataSource]User entity) + public async Task RemoveUserAsync_NotFound() { + int randomId = 74; + //Test - bool removed = await Repository.RemoveUserAsync(entity.Id); + bool removed = await Repository.RemoveUserAsync(randomId); await DbContext.SaveChangesAsync(); Assert.IsFalse(removed); From 10f63b453c9cd232f6cfcd4d6e2712a6f9acf9e9 Mon Sep 17 00:00:00 2001 From: jurjenverbruggen Date: Wed, 13 May 2020 10:42:06 +0200 Subject: [PATCH 5/6] Linked issue in changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b4eca93..d0da16ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added issue & pull request templates (bug & report) - [#11](https://github.com/DigitalExcellence/dex-backend/issues/11) - Changed errors to be compliant with RFC 7807, with guids for easy error searching - [#80](https://github.com/DigitalExcellence/dex-backend/issues/80) - Added highlighted filter to search endpoint - [#57](https://github.com/DigitalExcellence/dex-backend/issues/57) -- Added unittests for UserRepository +- Added unittests for UserRepository - [#121] (https://github.com/DigitalExcellence/dex-backend/issues/121) ### Changed From 562be9886e122af69ed6dac3efba0c78e29bdef7 Mon Sep 17 00:00:00 2001 From: jurjenverbruggen Date: Mon, 25 May 2020 09:51:59 +0200 Subject: [PATCH 6/6] Removed obsolete comment --- 3_Repositories.Tests/UserRepositoryTest.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/3_Repositories.Tests/UserRepositoryTest.cs b/3_Repositories.Tests/UserRepositoryTest.cs index 9f72e543..ec29461a 100644 --- a/3_Repositories.Tests/UserRepositoryTest.cs +++ b/3_Repositories.Tests/UserRepositoryTest.cs @@ -63,8 +63,6 @@ public async Task RemoveUserAsync_GoodFlow([UserDataSource]User entity) /// /// User that was not in repo not found /// - /// - /// [Test] public async Task RemoveUserAsync_NotFound() {