From d620088c63da4686e8a95537a7f12d1e0ca3d78b Mon Sep 17 00:00:00 2001 From: tonyfages Date: Fri, 15 Mar 2024 17:01:56 +0100 Subject: [PATCH] Add logger Entity + Unit Test for API --- .../API/Controllers/ArticleController.cs | 5 +- .../API/Controllers/FormulaireController.cs | 8 +- .../API/Controllers/UserController.cs | 22 +- .../API/Entity_FrameWork.Article.db | Bin 49152 -> 49152 bytes .../API/Entity_FrameWork.Article.db-shm | Bin 32768 -> 32768 bytes .../API/Entity_FrameWork.Article.db-wal | Bin 90672 -> 57712 bytes Verax_API_EF/Verax_API_EF/API/log.txt | 17 ++ .../API_DbDataManager/DbManagerArticle.cs | 16 +- .../API_DbDataManager/DbManagerFormulaire.cs | 21 +- .../API_DbDataManager/DbManagerUser.cs | 30 +-- .../API_Mapping/FormulaireMapping.cs | 2 +- .../Verax_API_EF/API_Mapping/UserMapping.cs | 2 +- .../API_Services/IArticleService.cs | 2 +- .../API_Services/IArticleUserService.cs | 9 - .../API_Services/IFormulaireService.cs | 4 +- .../Verax_API_EF/API_Services/IUserService.cs | 8 +- .../API_Tests_Console/Tests_Console.cs | 6 +- .../API_Unit_Test/UnitTest_Article.cs | 4 +- .../API_Unit_Test/UnitTest_Form.cs | 90 +++++++- .../API_Unit_Test/UnitTest_User.cs | 215 ++++++++++++++++++ .../DbContextLib/LibraryContext.cs | 2 +- .../Verax_API_EF/Test_Console_EF/log.txt | 0 22 files changed, 389 insertions(+), 74 deletions(-) delete mode 100644 Verax_API_EF/Verax_API_EF/API_Services/IArticleUserService.cs create mode 100644 Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_User.cs create mode 100644 Verax_API_EF/Verax_API_EF/Test_Console_EF/log.txt diff --git a/Verax_API_EF/Verax_API_EF/API/Controllers/ArticleController.cs b/Verax_API_EF/Verax_API_EF/API/Controllers/ArticleController.cs index 4c450ef..77caa98 100644 --- a/Verax_API_EF/Verax_API_EF/API/Controllers/ArticleController.cs +++ b/Verax_API_EF/Verax_API_EF/API/Controllers/ArticleController.cs @@ -21,6 +21,7 @@ namespace API.Controllers this._logger = logger; } + [Route("/articles")] [HttpGet] public async Task GetAllArticles([FromQuery] int index = 0, [FromQuery] int count = 10, [FromQuery] ArticleOrderCriteria orderCriterium = ArticleOrderCriteria.None) { @@ -109,8 +110,8 @@ namespace API.Controllers _logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(UpdateArticle), id, a); try { - var result = await _dataManager.ArticleService.UpdateArticle(id, a); - if (result == false) + var result = (await _dataManager.ArticleService.UpdateArticle(id, a)).ToDTO(); + if (result == null) { return NotFound($"Article ID {id} not found"); } diff --git a/Verax_API_EF/Verax_API_EF/API/Controllers/FormulaireController.cs b/Verax_API_EF/Verax_API_EF/API/Controllers/FormulaireController.cs index 6b46b64..fcf25aa 100644 --- a/Verax_API_EF/Verax_API_EF/API/Controllers/FormulaireController.cs +++ b/Verax_API_EF/Verax_API_EF/API/Controllers/FormulaireController.cs @@ -91,8 +91,8 @@ namespace API.Controllers _logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(DeleteForm), id); try { - var result = await _dataManager.FormulaireService.DeleteForm(id); - if (result == false) + var result = (await _dataManager.FormulaireService.DeleteForm(id)).ToDTO(); + if (result == null) { return NotFound($"Form Id {id} not found"); } @@ -112,8 +112,8 @@ namespace API.Controllers try { - var result = await _dataManager.FormulaireService.UpdateForm(id, formulaire); - if (result == false) + var result = (await _dataManager.FormulaireService.UpdateForm(id, formulaire)).ToDTO(); + if (result == null) { return NotFound($"form Id {id} not found"); } diff --git a/Verax_API_EF/Verax_API_EF/API/Controllers/UserController.cs b/Verax_API_EF/Verax_API_EF/API/Controllers/UserController.cs index adb77db..5ca51f4 100644 --- a/Verax_API_EF/Verax_API_EF/API/Controllers/UserController.cs +++ b/Verax_API_EF/Verax_API_EF/API/Controllers/UserController.cs @@ -68,8 +68,8 @@ namespace API.Controllers _logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(Create), user); try { - var result = await _dataManager.UserService.Create(user); - if (result == false) + var result = (await _dataManager.UserService.Create(user)).ToDTO(); + if (result == null) { return BadRequest($"User {user.Pseudo} already exists"); } @@ -90,8 +90,8 @@ namespace API.Controllers _logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(Update), user, pseudo); try { - var result = await _dataManager.UserService.Update(user,pseudo); - if (result == false) + var result = (await _dataManager.UserService.Update(user, pseudo)).ToDTO(); + if (result == null) { return NotFound(); } @@ -111,8 +111,8 @@ namespace API.Controllers _logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(Delete), pseudo); try { - var result = await _dataManager.UserService.Delete(pseudo); - if (result == false) + var result = (await _dataManager.UserService.Delete(pseudo)).ToDTO(); + if (result == null) { return NotFound(); } @@ -186,16 +186,16 @@ namespace API.Controllers } } - [HttpDelete("/user/{pseudo}/article")] - public async Task DeleteArticleUser(string pseudo) + [HttpDelete("/user/{pseudo}/{id}")] + public async Task DeleteArticleUser(string pseudo, long id) { _logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(DeleteArticleUser), pseudo); try { - var result = await _dataManager.UserService.DeleteArticleUser(pseudo); + var result = await _dataManager.UserService.DeleteArticleUser(pseudo, id); if (!result) { - return BadRequest($"ArticleUser {pseudo} does not exist"); + return BadRequest($"User {pseudo} or {id} does not exist"); } return Ok(result); } @@ -212,7 +212,7 @@ namespace API.Controllers _logger.LogInformation("Executing {Action} - with parameters: {Parameters}",nameof(UpdateArticleUser), articleUser); try { - var result = await _dataManager.UserService.UpdateArticleUser(articleUser); + var result = (await _dataManager.UserService.UpdateArticleUser(articleUser)); if (!result) { return BadRequest($"ArticleUser {articleUser.UserEntityPseudo} does not exist"); diff --git a/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db b/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db index c1874736901a316a2aff14cf158044ead4293130..175a9e3bfb33888228bcc9beffeb72eedaac90e5 100644 GIT binary patch delta 138 zcmZo@U~Xt&-oR+U%fP_E%y*7~e=5Hb-?`0#0tfgepR+s8lF7)1?Km)S*Cs)poV$o(~W7vFs jzLo$)!Al1IpZp*BUv3suxWPa9*?wVmHfCYY;EY57LXalm delta 163 zcmZo@U~Xt&-oR+U&p(xcneQ9}|0{kYzH@wAHwy}^;1iP+6&2+W4M{C7LB^BM*&SzL zU|+`h)c=>+<6})8N|H%K6|K(;ug&X{npY0cB2P$9>&PW6R DG$Jr* diff --git a/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-shm b/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-shm index 92cec95a0ddd553f5e984a73e83c138df32719cb..d5fc9fbb704b9577a86e5b9773468d5275689d97 100644 GIT binary patch delta 242 zcmZo@U}|V!s+V}A%K!qbK+MR%AixKtd4Tx)Z#j$SMxX3vZ&TqmHQuEh{4&Sk?DgMz zq^buR1qL8<|04mYupN|UVBi32ly0oCzrd?@O-@q-*EJ0k-N13LrP=8p+q cSs8gZKK#qX&dk6DG!UrdI};<{#)slE082zT2><{9 delta 283 zcmZo@U}|V!s+V}A%K!t63=9HdKn@QOGkr^Tda-?)_3U>g3wFJV{S!Fr^)sLS>|04y z4>KEN?tdfz6?bC*Nq_(s5Q8jc#lZ&2!_=?=+3Y|JrzcL7-grdJkC~Z)ZR5e;OsqT% zd<+5`5B_9g=4Idqi7*Q?h=6G!22l__`9nAxGbaPr#)Ds(n1va{Kw_KUMg3#ictJ`M E09{H-5&!@I diff --git a/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-wal b/Verax_API_EF/Verax_API_EF/API/Entity_FrameWork.Article.db-wal index 87148cb4f6d60c60e97366054b7fc2a8de809eaf..7605da657bc9a544f302ea364306a208df39841d 100644 GIT binary patch delta 1003 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 return entity.ToModel(); } @@ -74,21 +74,23 @@ public class DbManagerArticle : IArticleService Console.WriteLine(entity); if (entity == null) return null; _context.ArticleSet.Remove(entity); - await _context.SaveChangesAsync(); + var result = await _context.SaveChangesAsync(); + if (result == 0) return await Task.FromResult(null); return entity.ToModel(); } - public async Task UpdateArticle(long id, Article? a) + public async Task UpdateArticle(long id, Article? a) { var entity = _context.ArticleSet.FirstOrDefault(a => a.Id == id); - if (entity == null) return false; + if (entity == null) return await Task.FromResult(null); entity.Title = a.Title; entity.Description = a.Description; entity.Author = a.Author; entity.DatePublished = a.DatePublished; entity.LectureTime = a.LectureTime; - await _context.SaveChangesAsync(); - return true; + var result = await _context.SaveChangesAsync(); + if (result == 0) return await Task.FromResult(null); + return entity.ToModel(); } diff --git a/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerFormulaire.cs b/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerFormulaire.cs index 5cd515f..914a606 100644 --- a/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerFormulaire.cs +++ b/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerFormulaire.cs @@ -59,28 +59,31 @@ public class DbManagerFormulaire : IFormulaireService }; _context.FormSet.Add(entity); - await _context.SaveChangesAsync(); + var result = await _context.SaveChangesAsync(); + if (result == 0) return await Task.FromResult(null); return entity.ToModel(); } - public async Task DeleteForm(long id) + public async Task DeleteForm(long id) { var entity = _context.FormSet.FirstOrDefault(f => f.Id == id); - if (entity == null) return false; + if (entity == null) return Task.FromResult(null).Result; _context.FormSet.Remove(entity); - await _context.SaveChangesAsync(); - return true; + var result = await _context.SaveChangesAsync(); + if (result == 0) return await Task.FromResult(null); + return entity.ToModel(); } - public async Task UpdateForm(long id, Formulaire formulaire) + public async Task UpdateForm(long id, Formulaire formulaire) { var entity = _context.FormSet.FirstOrDefault(f => f.Id == id); - if (entity == null) return false; + if (entity == null) return Task.FromResult(null).Result; entity.Theme = formulaire.Theme; entity.DatePublication = formulaire.Date; entity.Link = formulaire.Lien; entity.UserEntityPseudo = formulaire.UserPseudo; - await _context.SaveChangesAsync(); - return true; + var result = await _context.SaveChangesAsync(); + if (result == 0) return await Task.FromResult(null); + return entity.ToModel(); } } \ No newline at end of file diff --git a/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerUser.cs b/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerUser.cs index a5a7b26..5c196d7 100644 --- a/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerUser.cs +++ b/Verax_API_EF/Verax_API_EF/API_DbDataManager/DbManagerUser.cs @@ -43,7 +43,7 @@ public class DbManagerUser: IUserService return await Task.FromResult(entity.ToModel()); } - public async Task Create(User user) + public async Task Create(User user) { var entity = new UserEntity() { @@ -55,30 +55,33 @@ public class DbManagerUser: IUserService Role = user.Role }; _context.UserSet.Add(entity); - await _context.SaveChangesAsync(); - return true; + var result = await _context.SaveChangesAsync(); + if (result == 0) return await Task.FromResult(null); + return await Task.FromResult(entity.ToModel()); } - public async Task Update(User user, string pseudo) + public async Task Update(User user, string pseudo) { var entity = _context.UserSet.FirstOrDefault(u => u.Pseudo == pseudo); - if (entity == null) return false; + if (entity == null) return await Task.FromResult(null); entity.Mdp = user.Mdp; entity.Mail = user.Mail; entity.Role = user.Role; entity.Prenom = user.Prenom; entity.Nom = user.Nom; - await _context.SaveChangesAsync(); - return true; + var result = await _context.SaveChangesAsync(); + if (result == 0) return await Task.FromResult(null); + return await Task.FromResult(entity.ToModel()); } - public async Task Delete(string pseudo) + public async Task Delete(string pseudo) { var entity = _context.UserSet.FirstOrDefault(u => u.Pseudo == pseudo); - if (entity == null) return await Task.FromResult(false); + if (entity == null) return await Task.FromResult(null); _context.UserSet.Remove(entity); - await _context.SaveChangesAsync(); - return await Task.FromResult(true); + var result = await _context.SaveChangesAsync(); + if (result == 0) return await Task.FromResult(null); + return await Task.FromResult(entity.ToModel()); } public async Task> GetAllArticleUsers() @@ -124,9 +127,10 @@ public class DbManagerUser: IUserService return await Task.FromResult(true); } - public async Task DeleteArticleUser(string pseudo) + public async Task DeleteArticleUser(string pseudo, long id) { - var entity = _context.ArticleUserSet.FirstOrDefault(a => a.UserEntityPseudo.Equals(pseudo)); + + var entity = _context.ArticleUserSet.FirstOrDefault(a => a.UserEntityPseudo.Equals(pseudo) && a.ArticleEntityId.Equals(id)); if (entity == null) return await Task.FromResult(false); _context.ArticleUserSet.Remove(entity); await _context.SaveChangesAsync(); diff --git a/Verax_API_EF/Verax_API_EF/API_Mapping/FormulaireMapping.cs b/Verax_API_EF/Verax_API_EF/API_Mapping/FormulaireMapping.cs index 8a0e631..7a779ab 100644 --- a/Verax_API_EF/Verax_API_EF/API_Mapping/FormulaireMapping.cs +++ b/Verax_API_EF/Verax_API_EF/API_Mapping/FormulaireMapping.cs @@ -5,7 +5,7 @@ namespace API_Mapping; public static class FormulaireMapping { - public static FormulaireDTO ToDTO(this Formulaire f) => new() + public static FormulaireDTO ToDTO(this Formulaire? f) => new() { Id = f.Id, Theme = f.Theme, diff --git a/Verax_API_EF/Verax_API_EF/API_Mapping/UserMapping.cs b/Verax_API_EF/Verax_API_EF/API_Mapping/UserMapping.cs index ef5cd9c..53789e6 100644 --- a/Verax_API_EF/Verax_API_EF/API_Mapping/UserMapping.cs +++ b/Verax_API_EF/Verax_API_EF/API_Mapping/UserMapping.cs @@ -5,7 +5,7 @@ namespace API_Mapping; public static class UserMapping { - public static UserDTO ToDTO(this User u) => new() + public static UserDTO ToDTO(this User? u) => new() { Pseudo = u.Pseudo, Mdp = u.Mdp, diff --git a/Verax_API_EF/Verax_API_EF/API_Services/IArticleService.cs b/Verax_API_EF/Verax_API_EF/API_Services/IArticleService.cs index 712ab2e..967eddf 100644 --- a/Verax_API_EF/Verax_API_EF/API_Services/IArticleService.cs +++ b/Verax_API_EF/Verax_API_EF/API_Services/IArticleService.cs @@ -14,7 +14,7 @@ namespace API_Services Task DeleteArticle(long id); - Task UpdateArticle(long id, Article? a); + Task UpdateArticle(long id, Article? a); } diff --git a/Verax_API_EF/Verax_API_EF/API_Services/IArticleUserService.cs b/Verax_API_EF/Verax_API_EF/API_Services/IArticleUserService.cs deleted file mode 100644 index 68cba95..0000000 --- a/Verax_API_EF/Verax_API_EF/API_Services/IArticleUserService.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Entities; -using Model; - -namespace API_Services; - -public interface IArticleUserService -{ - -} \ No newline at end of file diff --git a/Verax_API_EF/Verax_API_EF/API_Services/IFormulaireService.cs b/Verax_API_EF/Verax_API_EF/API_Services/IFormulaireService.cs index 9374d8b..0b0d444 100644 --- a/Verax_API_EF/Verax_API_EF/API_Services/IFormulaireService.cs +++ b/Verax_API_EF/Verax_API_EF/API_Services/IFormulaireService.cs @@ -12,7 +12,7 @@ public interface IFormulaireService Task CreateForm(Formulaire formulaire); - Task DeleteForm(long id); + Task DeleteForm(long id); - Task UpdateForm(long id, Formulaire formulaire); + Task UpdateForm(long id, Formulaire formulaire); } \ No newline at end of file diff --git a/Verax_API_EF/Verax_API_EF/API_Services/IUserService.cs b/Verax_API_EF/Verax_API_EF/API_Services/IUserService.cs index b191a32..ed48afb 100644 --- a/Verax_API_EF/Verax_API_EF/API_Services/IUserService.cs +++ b/Verax_API_EF/Verax_API_EF/API_Services/IUserService.cs @@ -8,17 +8,17 @@ namespace API_Services Task> GetAll(int index, int count, UserOrderCriteria orderCriteria); Task GetByPseudo(string pseudo); - Task Create(User user); - Task Update(User user, string pseudo); + Task Create(User user); + Task Update(User user, string pseudo); - Task Delete(string pseudo); + Task Delete(string pseudo); Task> GetAllArticleUsers(); Task> GetArticleUser(string pseudo); Task CreateArticleUser(ArticleUserEntity articleUser); - Task DeleteArticleUser(string pseudo); + Task DeleteArticleUser(string pseudo, long id); Task UpdateArticleUser(ArticleUserEntity articleUser); diff --git a/Verax_API_EF/Verax_API_EF/API_Tests_Console/Tests_Console.cs b/Verax_API_EF/Verax_API_EF/API_Tests_Console/Tests_Console.cs index e8b8c7d..aff59a0 100644 --- a/Verax_API_EF/Verax_API_EF/API_Tests_Console/Tests_Console.cs +++ b/Verax_API_EF/Verax_API_EF/API_Tests_Console/Tests_Console.cs @@ -13,13 +13,13 @@ class Tests_Console static async Task Main(string[] args) { //await TestUser(); - //await TestFormulaire(); + await TestFormulaire(); //await TestArticle(); } private static async Task TestFormulaire() { - //await TestFormulaireGetAll(); + await TestFormulaireGetAll(); //await TestFormulaireGetId(); //await TestFormulaireCreate(); //await TestFormulaireDelete(); @@ -37,7 +37,7 @@ class Tests_Console //await TestGetArticleByUser(); //await TestCreateArticleUser(); //await TestDeleteArticleUser(); - await TestUpdateArticleUser(); + //await TestUpdateArticleUser(); } diff --git a/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_Article.cs b/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_Article.cs index 736a240..0219dbd 100644 --- a/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_Article.cs +++ b/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_Article.cs @@ -100,9 +100,9 @@ public class UnitTest_Article DatePublished = "Test", LectureTime = 10 }; - mockArticleService.Setup(x => x.UpdateArticle(1, updated)).ReturnsAsync(true); + mockArticleService.Setup(x => x.UpdateArticle(1, updated)).ReturnsAsync(updated); var resultUpdated = mockArticleService.Object.UpdateArticle(1, updated); - Assert.True(resultUpdated.Result); + Assert.Equal(updated ,resultUpdated.Result); } [Fact] diff --git a/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_Form.cs b/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_Form.cs index 138122d..bc9b615 100644 --- a/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_Form.cs +++ b/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_Form.cs @@ -1,17 +1,99 @@ using API_Services; +using Model; using Moq; namespace API_Unit_Test; public class UnitTest_Form { + [Fact] + public void TestGetAllForm() + { + var mockFormService = new Mock(); + var expected = new List() + { + new Formulaire() + { + Lien = "Test", + Theme = "Test", + Date = "Test", + UserPseudo = "Test" + }, + new Formulaire() + { + Lien = "Test", + Theme = "Test", + Date = "Test", + UserPseudo = "Test" + } + }; + mockFormService.Setup(x => x.GetAllForm(0, 10, FormOrderCriteria.None)).ReturnsAsync(expected); + var result = mockFormService.Object.GetAllForm(0, 10, FormOrderCriteria.None); + Assert.Equal(expected, result.Result); + } [Fact] - static void TestAllUser() + public void TestGetFormById() + { + var mockFormService = new Mock(); + var expected = new Formulaire() + { + Lien = "Test", + Theme = "Test", + Date = "Test", + UserPseudo = "Test" + }; + mockFormService.Setup(x => x.GetById(1)).ReturnsAsync(expected); + var result = mockFormService.Object.GetById(1); + Assert.Equal(expected, result.Result); + } + + [Fact] + public void TestCreateForm() { - var mockUserService = new Mock(); - // TODO + var mockFormService = new Mock(); + var expected = new Formulaire() + { + Lien = "Test", + Theme = "Test", + Date = "Test", + UserPseudo = "Test" + }; + mockFormService.Setup(x => x.CreateForm(expected)).ReturnsAsync(expected); + var result = mockFormService.Object.CreateForm(expected); + Assert.Equal(expected, result.Result); } -} + [Fact] + public void TestUpdateForm() + { + var mockFormService = new Mock(); + var expected = new Formulaire() + { + Lien = "Test", + Theme = "Test", + Date = "Test", + UserPseudo = "Test" + }; + mockFormService.Setup(x => x.CreateForm(expected)).ReturnsAsync(expected); + var result = mockFormService.Object.CreateForm(expected); + Assert.Equal(expected, result.Result); + } + + [Fact] + public void TestDeleteForm() + { + var mockFormService = new Mock(); + var expected = new Formulaire() + { + Lien = "Test", + Theme = "Test", + Date = "Test", + UserPseudo = "Test" + }; + mockFormService.Setup(x => x.DeleteForm(1)).ReturnsAsync(expected); + var result = mockFormService.Object.DeleteForm(1); + Assert.Equal(expected, result.Result); + } +} \ No newline at end of file diff --git a/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_User.cs b/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_User.cs new file mode 100644 index 0000000..9634bcd --- /dev/null +++ b/Verax_API_EF/Verax_API_EF/API_Unit_Test/UnitTest_User.cs @@ -0,0 +1,215 @@ +using API_Services; +using Entities; +using Model; +using Moq; + +namespace API_Unit_Test; + +public class UnitTest_User +{ + + [Fact] + static void TestAllUser() + { + var mockUserService = new Mock(); + var expected = new List() + { + new User() + { + Pseudo = "Tofgasy", + Prenom = "Tony", + Nom = "Fages", + Mail = "mail@mail.com", + Mdp = "1234", + Role = "Admin" + }, + new User() + { + Pseudo = "Blizzard", + Prenom = "Louis", + Nom = "Laborie", + Mail = "mail@mail.com", + Mdp = "1234", + Role = "Admin", + }, + }; + mockUserService.Setup(x => x.GetAll(0, 10, UserOrderCriteria.None)).ReturnsAsync(expected); + var result = mockUserService.Object.GetAll(0, 10, UserOrderCriteria.None); + Assert.Equal(expected, result.Result); + + } + + [Fact] + static void TestGetUserByPseudo() + { + var mockUserService = new Mock(); + var expected = new User() + { + Pseudo = "Tofgasy", + Prenom = "Tony", + Nom = "Fages", + Mail = "mail@mail.com", + Mdp = "1234", + Role = "Admin" + }; + mockUserService.Setup(x => x.GetByPseudo("Tofgasy")).ReturnsAsync(expected); + var result = mockUserService.Object.GetByPseudo("Tofgasy"); + Assert.Equal(expected, result.Result); + } + + [Fact] + static void TestCreateUser() + { + var mockUserService = new Mock(); + var user = new User() + { + Pseudo = "Tofgasy", + Prenom = "Tony", + Nom = "Fages", + Mail = "mail@mail.com", + Mdp = "1234", + Role = "Admin" + }; + mockUserService.Setup(x => x.Create(user)).ReturnsAsync(user); + var result = mockUserService.Object.Create(user); + Assert.Equal( user,result.Result); + } + + [Fact] + static void TestUpdateUser() + { + var mockUserService = new Mock(); + var user = new User() + { + Pseudo = "Tofgasy", + Prenom = "Tonio", + Nom = "Fages", + Mail = "mail@mail.com", + Mdp = "1234", + Role = "Admin" + }; + mockUserService.Setup(x => x.Update(user, "Tofgasy")).ReturnsAsync(user); + var result = mockUserService.Object.Update(user, "Tofgasy"); + Assert.Equal( user,result.Result); + } + + [Fact] + static void TestDeleteUser() + { + var mockUserService = new Mock(); + var user = new User() + { + Pseudo = "Tofgasy", + Prenom = "Tonio", + Nom = "Fages", + Mail = "mail@mail.com", + Mdp = "1234", + Role = "Admin" + }; + mockUserService.Setup(x => x.Delete("Tofgasy")).ReturnsAsync(user); + var result = mockUserService.Object.Delete("Tofgasy"); + Assert.Equal( user,result.Result); + } + + + [Fact] + static void TestGetAllArticleUsers() + { + var mockUserService = new Mock(); + var expected = new List() + { + new User() + { + Pseudo = "Tofgasy", + Prenom = "Tony", + Nom = "Fages", + Mail = "", + Mdp = "", + Role = "", + }, + new User() + { + Pseudo = "Blizzard", + Prenom = "Louis", + Nom = "Laborie", + Mail = "", + Mdp = "", + Role = "", + }, + }; + mockUserService.Setup(x => x.GetAllArticleUsers()).ReturnsAsync(expected); + var result = mockUserService.Object.GetAllArticleUsers(); + Assert.Equal(expected, result.Result); + } + + [Fact] + static void TestGetArticleUser() + { + var mockUserService = new Mock(); + var expected = new List
() + { + new Article() + { + Id = 1, + Title = "Test", + Description = "Test", + Author = "Test", + DatePublished = "Test", + LectureTime = 10 + }, + new Article() + { + Id = 2, + Title = "Test", + Description = "Test", + Author = "Test", + DatePublished = "Test", + LectureTime = 10 + } + }; + mockUserService.Setup(x => x.GetArticleUser("Tofgasy")).ReturnsAsync(expected); + var result = mockUserService.Object.GetArticleUser("Tofgasy"); + Assert.Equal(expected, result.Result); + } + + [Fact] + static void TestCreateArticleUser() + { + var mockUserService = new Mock(); + var articleUser = new ArticleUserEntity() + { + ArticleEntityId = 1, + UserEntityPseudo = "Tofgasy" + }; + mockUserService.Setup(x => x.CreateArticleUser(articleUser)).ReturnsAsync(true); + var result = mockUserService.Object.CreateArticleUser(articleUser); + Assert.True(result.Result); + } + + [Fact] + static void TestDeleteArticleUser() + { + var mockUserService = new Mock(); + mockUserService.Setup(x => x.DeleteArticleUser("Tofgasy", 1)).ReturnsAsync(true); + var result = mockUserService.Object.DeleteArticleUser("Tofgasy", 1); + Assert.True(result.Result); + } + + [Fact] + static void TestUpdateArticleUser() + { + var mockUserService = new Mock(); + var articleUser = new ArticleUserEntity() + { + ArticleEntityId = 1, + UserEntityPseudo = "Tofgasy" + }; + mockUserService.Setup(x => x.UpdateArticleUser(articleUser)).ReturnsAsync(true); + var result = mockUserService.Object.UpdateArticleUser(articleUser); + Assert.True(result.Result); + } + + + +} + diff --git a/Verax_API_EF/Verax_API_EF/DbContextLib/LibraryContext.cs b/Verax_API_EF/Verax_API_EF/DbContextLib/LibraryContext.cs index 0f9f644..b8032db 100644 --- a/Verax_API_EF/Verax_API_EF/DbContextLib/LibraryContext.cs +++ b/Verax_API_EF/Verax_API_EF/DbContextLib/LibraryContext.cs @@ -26,7 +26,7 @@ public class LibraryContext : DbContext protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { - optionsBuilder.LogTo( LogFile.WriteLine, LogLevel.Error).EnableDetailedErrors().EnableDetailedErrors(); + optionsBuilder.LogTo(message => LogFile.WriteLine(message), LogLevel.Information); if (!optionsBuilder.IsConfigured) { optionsBuilder.UseSqlite($"Data Source=Entity_FrameWork.Article.db"); diff --git a/Verax_API_EF/Verax_API_EF/Test_Console_EF/log.txt b/Verax_API_EF/Verax_API_EF/Test_Console_EF/log.txt new file mode 100644 index 0000000..e69de29