From 4df6eac1a0746ba5f905dac5f5b5937721a92b7b Mon Sep 17 00:00:00 2001 From: masapountz Date: Fri, 15 Mar 2024 21:20:10 +0100 Subject: [PATCH] Ajout des TU Pour GetSuccesses et GetSuccessesInquiryId --- API_SQLuedo/Dto/SuccessDTO.cs | 36 +++- .../Extensions/SuccessDto.EqualityComparer.cs | 22 +++ API_SQLuedo/TestAPI/InquiryUnitTest.cs | 3 +- API_SQLuedo/TestAPI/SuccessesUnitTest.cs | 155 ++++++++++++++++++ API_SQLuedo/TestAPI/UserUnitTest.cs | 3 +- 5 files changed, 214 insertions(+), 5 deletions(-) create mode 100644 API_SQLuedo/TestAPI/Extensions/SuccessDto.EqualityComparer.cs create mode 100644 API_SQLuedo/TestAPI/SuccessesUnitTest.cs diff --git a/API_SQLuedo/Dto/SuccessDTO.cs b/API_SQLuedo/Dto/SuccessDTO.cs index 579f209..44ae880 100644 --- a/API_SQLuedo/Dto/SuccessDTO.cs +++ b/API_SQLuedo/Dto/SuccessDTO.cs @@ -1,6 +1,6 @@ namespace Dto; -public class SuccessDTO +public class SuccessDTO : IEquatable { public int UserId { get; set; } public int InquiryId { get; set; } @@ -16,4 +16,38 @@ public class SuccessDTO InquiryId = inquiryId; IsFinished = isFinished; } + + public override string ToString() + { + return $"User :{UserId}\t Enquête : {InquiryId}\t{IsFinished}"; + } + + public override bool Equals(object right) + { + if (object.ReferenceEquals(right, null)) + { + return false; + } + + if (object.ReferenceEquals(this, right)) + { + return true; + } + + if (this.GetType() != right.GetType()) + { + return false; + } + + return this.Equals(right as SuccessDTO); + } + public bool Equals(SuccessDTO other) + { + return (this.UserId == other.UserId && this.InquiryId == other.InquiryId); + } + + public override int GetHashCode() + { + return UserId * InquiryId; + } } \ No newline at end of file diff --git a/API_SQLuedo/TestAPI/Extensions/SuccessDto.EqualityComparer.cs b/API_SQLuedo/TestAPI/Extensions/SuccessDto.EqualityComparer.cs new file mode 100644 index 0000000..9516419 --- /dev/null +++ b/API_SQLuedo/TestAPI/Extensions/SuccessDto.EqualityComparer.cs @@ -0,0 +1,22 @@ +using Dto; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TestAPI.Extensions +{ + class SuccessIdEqualityComparer : EqualityComparer + { + public override bool Equals(SuccessDTO x, SuccessDTO y) + { + return x.UserId == y.UserId && x.InquiryId == y.InquiryId; + } + + public override int GetHashCode(SuccessDTO obj) + { + return obj.UserId * obj.InquiryId; + } + } +} diff --git a/API_SQLuedo/TestAPI/InquiryUnitTest.cs b/API_SQLuedo/TestAPI/InquiryUnitTest.cs index 0654a2c..7d65d3c 100644 --- a/API_SQLuedo/TestAPI/InquiryUnitTest.cs +++ b/API_SQLuedo/TestAPI/InquiryUnitTest.cs @@ -48,8 +48,7 @@ namespace TestAPI [Fact] public void GetInquiresListFail() { - var inquiriesList = GetInquiriesData(); - inquiryService.Setup(x => x.GetInquiries(1, 3, 0)) + inquiryService.Setup(x => x.GetInquiries(1, 4, 0)) .Returns(new List()); var InquiryController = new InquiriesController(inquiryService.Object, new NullLogger()); diff --git a/API_SQLuedo/TestAPI/SuccessesUnitTest.cs b/API_SQLuedo/TestAPI/SuccessesUnitTest.cs new file mode 100644 index 0000000..9f96393 --- /dev/null +++ b/API_SQLuedo/TestAPI/SuccessesUnitTest.cs @@ -0,0 +1,155 @@ +using API.Controllers; +using Dto; +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging.Abstractions; +using Moq; +using Shared; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TestAPI.Extensions; + +namespace TestAPI +{ + public class SuccessesUnitTest + { + private readonly Mock> sucessService; + public SuccessesUnitTest() + { + sucessService = new Mock>(); + } + + + [Fact] + public void GetSuccessesListSuccess() + { + var successesList = GetSuccessesData(); + sucessService.Setup(x => x.GetSuccesses(1, 4, 0)) + .Returns(successesList); + var successesController = new SuccessesController(sucessService.Object, new NullLogger()); + + var successesResult = successesController.GetSuccesses(1, 4, 0); + + if (successesResult is OkObjectResult okObjectResult) + { + var valeur = okObjectResult.Value; + + Assert.NotNull(valeur); + Assert.Equal(GetSuccessesData().ToString(), valeur.ToString()); + Assert.True(successesList.SequenceEqual(valeur as IEnumerable, new SuccessIdEqualityComparer())); + + } + + } + + [Fact] + public void GetSuccessesListFail() + { + sucessService.Setup(x => x.GetSuccesses(1, 4, 0)) + .Returns(new List()); + var successesController = new SuccessesController(sucessService.Object, new NullLogger()); + + var successesResult = successesController.GetSuccesses(2, 3, 0); + + if (successesResult is StatusCodeResult statusCodeResult && statusCodeResult.StatusCode == 204) + + { + + Assert.IsNotType(successesResult); + } + + } + + + [Fact] + public void GetSuccessInquiryIdSuccess() + { + var successesList = GetSuccessesData(); + sucessService.Setup(x => x.GetSuccessesByInquiryId(1)) + .Returns(new List { successesList[0], successesList[1] }); + var SuccessesController = new SuccessesController(sucessService.Object, new NullLogger()); + + var sucessesResult = SuccessesController.GetSuccessByInquiryId(1); + if (sucessesResult is OkObjectResult okObjectResult) + { + List valeur = okObjectResult.Value as List; + + Assert.NotNull(valeur); + Assert.Equal(0, valeur[0].UserId); + Assert.Equal(1, valeur[0].InquiryId); + Assert.True(valeur[0].IsFinished); + Assert.Equal(1, valeur[1].UserId); + Assert.Equal(1, valeur[1].InquiryId); + Assert.True(valeur[1].IsFinished); + + + Assert.Equal(valeur[1].GetHashCode(), successesList[1].GetHashCode()); + Assert.True(valeur[1].Equals(successesList[1])); + Assert.False(valeur.Equals(new object())); + Assert.IsType(valeur[0]); + Assert.Contains(valeur[1], successesList); + } + + } + + [Fact] + public void GetSuccessInquiryIdFail() + { + var successesList = GetSuccessesData(); + sucessService.Setup(x => x.GetSuccessesByInquiryId(1)) + .Returns(new List { successesList[0], successesList[1] }); + var SuccessesController = new SuccessesController(sucessService.Object, new NullLogger()); + + var sucessesResult = SuccessesController.GetSuccessByInquiryId(100); + if (sucessesResult is NotFoundObjectResult NFObjectResult) + { + var valeur = NFObjectResult.Value; + + Assert.NotNull(valeur); + Assert.IsNotType(valeur); + Assert.DoesNotContain(valeur, successesList); + } + + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + private List GetSuccessesData() + { + List successesData = new List(4) + { + new (0,1,true), + new (1,1,true), + new (2,3,true), + new (3,4,true), + }; + return successesData; + } + } +} diff --git a/API_SQLuedo/TestAPI/UserUnitTest.cs b/API_SQLuedo/TestAPI/UserUnitTest.cs index 4b28e91..c4e8311 100644 --- a/API_SQLuedo/TestAPI/UserUnitTest.cs +++ b/API_SQLuedo/TestAPI/UserUnitTest.cs @@ -46,8 +46,7 @@ namespace TestAPI [Fact] public void GetUserListFail() - { - var userList = GetUsersData(); + { userService.Setup(x => x.GetUsers(1, 4,0)) .Returns(new List()); var UsersController = new UsersController(new NullLogger(), userService.Object);