From bc6f9dadb157d475d1f9b1c2f5e7ec768e6dbf30 Mon Sep 17 00:00:00 2001 From: clchieu Date: Fri, 15 Mar 2024 15:56:08 +0100 Subject: [PATCH 1/4] =?UTF-8?q?Suppression=20erreur=20de=20m=C3=A9thode=20?= =?UTF-8?q?d'extension?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API_SQLuedo/EntityFramework/ParagraphEntity.cs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/API_SQLuedo/EntityFramework/ParagraphEntity.cs b/API_SQLuedo/EntityFramework/ParagraphEntity.cs index 6785189..b7ab14e 100644 --- a/API_SQLuedo/EntityFramework/ParagraphEntity.cs +++ b/API_SQLuedo/EntityFramework/ParagraphEntity.cs @@ -37,10 +37,5 @@ public class ParagraphEntity : ContentLessonEntity Info = info; Query = query; Comment = comment; - } - - public object FromEntityToModel() - { - throw new NotImplementedException(); - } + } } \ No newline at end of file From 4367d53bb8f1ea93587bf01651cfe78baab1fdb9 Mon Sep 17 00:00:00 2001 From: clchieu Date: Fri, 15 Mar 2024 16:14:41 +0100 Subject: [PATCH 2/4] Ajout de tests pour un constructeur de solution --- .../EntitiesTests/TestSolutionEntity.cs | 64 +++++++++++++------ 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestSolutionEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestSolutionEntity.cs index 5e31571..8808fd1 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestSolutionEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestSolutionEntity.cs @@ -16,7 +16,7 @@ public class TestSolutionEntity public void TestDefaultConstructor() { SolutionEntity solution = new SolutionEntity(); - Assert.Equal(0,solution.OwnerId); + Assert.Equal(0, solution.OwnerId); Assert.Null(solution.Owner); Assert.Null(solution.MurdererFirstName); Assert.Null(solution.MurdererLastName); @@ -24,12 +24,12 @@ public class TestSolutionEntity Assert.Null(solution.MurderWeapon); Assert.Null(solution.Explaination); } - + [Fact] public void TestConstructorWithOnlyId() { SolutionEntity solution = new SolutionEntity(_inquiryId); - Assert.Equal(_inquiryId,solution.OwnerId); + Assert.Equal(_inquiryId, solution.OwnerId); Assert.Null(solution.Owner); Assert.Null(solution.MurdererFirstName); Assert.Null(solution.MurdererLastName); @@ -37,30 +37,56 @@ public class TestSolutionEntity Assert.Null(solution.MurderWeapon); Assert.Null(solution.Explaination); } - + [Fact] public void TestConstructorWithoutOwnerId() { - SolutionEntity solution = new SolutionEntity(_inquiry,_murdererFirstName,_murdererLastName,_murderPlace,_murderWeapon, _explaination); - Assert.Equal(0,solution.OwnerId); - Assert.Equal(_inquiry,solution.Owner); - Assert.Equal(_murdererFirstName,solution.MurdererFirstName); - Assert.Equal(_murdererLastName,solution.MurdererLastName); - Assert.Equal(_murderPlace,solution.MurderPlace); - Assert.Equal(_murderWeapon,solution.MurderWeapon); + SolutionEntity solution = new SolutionEntity(_inquiry, _murdererFirstName, _murdererLastName, _murderPlace, + _murderWeapon, _explaination); + Assert.Equal(0, solution.OwnerId); + Assert.Equal(_inquiry, solution.Owner); + Assert.Equal(_murdererFirstName, solution.MurdererFirstName); + Assert.Equal(_murdererLastName, solution.MurdererLastName); + Assert.Equal(_murderPlace, solution.MurderPlace); + Assert.Equal(_murderWeapon, solution.MurderWeapon); Assert.Equal(_explaination, solution.Explaination); } - + [Fact] public void TestConstructorWithAllAttributes() { - SolutionEntity solution = new SolutionEntity(_inquiryId,_inquiry,_murdererFirstName,_murdererLastName,_murderPlace,_murderWeapon, _explaination); - Assert.Equal(_inquiryId,solution.OwnerId); - Assert.Equal(_inquiry,solution.Owner); - Assert.Equal(_murdererFirstName,solution.MurdererFirstName); - Assert.Equal(_murdererLastName,solution.MurdererLastName); - Assert.Equal(_murderPlace,solution.MurderPlace); - Assert.Equal(_murderWeapon,solution.MurderWeapon); + SolutionEntity solution = new SolutionEntity(_inquiryId, _inquiry, _murdererFirstName, _murdererLastName, + _murderPlace, _murderWeapon, _explaination); + Assert.Equal(_inquiryId, solution.OwnerId); + Assert.Equal(_inquiry, solution.Owner); + Assert.Equal(_murdererFirstName, solution.MurdererFirstName); + Assert.Equal(_murdererLastName, solution.MurdererLastName); + Assert.Equal(_murderPlace, solution.MurderPlace); + Assert.Equal(_murderWeapon, solution.MurderWeapon); Assert.Equal(_explaination, solution.Explaination); } + + [Fact] + public void Constructor_ShouldSetProperties_WhenCalledWithSixParameters() + { + // Arrange + const int ownerId = 1; + const string murdererFirstName = "John"; + const string murdererLastName = "Doe"; + const string murderPlace = "WhiteHouse"; + const string murderWeapon = "Nuclear Bomb"; + const string explanation = "This is an explanation"; + + // Act + var solutionEntity = new SolutionEntity(ownerId, murdererFirstName, murdererLastName, murderPlace, murderWeapon, + explanation); + + // Assert + Assert.Equal(ownerId, solutionEntity.OwnerId); + Assert.Equal(murdererFirstName, solutionEntity.MurdererFirstName); + Assert.Equal(murdererLastName, solutionEntity.MurdererLastName); + Assert.Equal(murderPlace, solutionEntity.MurderPlace); + Assert.Equal(murderWeapon, solutionEntity.MurderWeapon); + Assert.Equal(explanation, solutionEntity.Explaination); + } } \ No newline at end of file From 1d374366269803890410a301abc997205c99fa87 Mon Sep 17 00:00:00 2001 From: clchieu Date: Fri, 15 Mar 2024 16:15:21 +0100 Subject: [PATCH 3/4] Ajout de tests pour la blacklist et gestion des erreurs dans le constructeur --- API_SQLuedo/Model/BlackList.cs | 3 ++ .../EntitiesTests/TestBlackListEntity.cs | 54 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 API_SQLuedo/TestEF/EntitiesTests/TestBlackListEntity.cs diff --git a/API_SQLuedo/Model/BlackList.cs b/API_SQLuedo/Model/BlackList.cs index 002b5ba..bce0cf0 100644 --- a/API_SQLuedo/Model/BlackList.cs +++ b/API_SQLuedo/Model/BlackList.cs @@ -7,6 +7,9 @@ public class BlackList public BlackList(string email, DateOnly expirationDate) { + if (email is null or "") + throw new ArgumentException("Email cannot be null or empty"); + ArgumentOutOfRangeException.ThrowIfLessThan(expirationDate, DateOnly.FromDateTime(DateTime.Now)); Email = email; ExpirationDate = expirationDate; } diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestBlackListEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestBlackListEntity.cs new file mode 100644 index 0000000..abc2ad6 --- /dev/null +++ b/API_SQLuedo/TestEF/EntitiesTests/TestBlackListEntity.cs @@ -0,0 +1,54 @@ +using Model; + +namespace TestEF.EntitiesTests; + +public class TestBlackListEntity +{ + [Fact] + public void Constructor_ShouldSetProperties_WhenCalledWithTwoParameters() + { + // Arrange + string email = "test@example.com"; + DateOnly expirationDate = DateOnly.FromDateTime(DateTime.Now.AddDays(10)); + + // Act + var blackList = new BlackList(email, expirationDate); + + // Assert + Assert.Equal(email, blackList.Email); + Assert.Equal(expirationDate, blackList.ExpirationDate); + } + + [Fact] + public void Constructor_ShouldThrowArgumentException_WhenEmailIsEmpty() + { + // Arrange + string email = string.Empty; + DateOnly expirationDate = DateOnly.FromDateTime(DateTime.Now.AddDays(10)); + + // Act & Assert + Assert.Throws(() => new BlackList(email, expirationDate)); + } + + [Fact] + public void Constructor_ShouldThrowArgumentException_WhenEmailIsNull() + { + // Arrange + string email = null; + DateOnly expirationDate = DateOnly.FromDateTime(DateTime.Now.AddDays(10)); + + // Act & Assert + Assert.Throws(() => new BlackList(email, expirationDate)); + } + + [Fact] + public void Constructor_ShouldThrowArgumentOutOfRangeException_WhenExpirationDateIsInThePast() + { + // Arrange + string email = "test@example.com"; + DateOnly expirationDate = DateOnly.FromDateTime(DateTime.Now.AddDays(-1)); + + // Act & Assert + Assert.Throws(() => new BlackList(email, expirationDate)); + } +} \ No newline at end of file From d8e041736f0bcd9f9c43141906bc5ef22414fdfb Mon Sep 17 00:00:00 2001 From: clchieu Date: Fri, 15 Mar 2024 16:22:02 +0100 Subject: [PATCH 4/4] Ajout de tests pour le ContentLessonEntity --- .../ConcreteContentLessonEntity.cs | 21 +++++++ .../EntitiesTests/TestContentLessonEntity.cs | 55 +++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 API_SQLuedo/TestEF/EntitiesTests/ConcreteContentLessonEntity.cs create mode 100644 API_SQLuedo/TestEF/EntitiesTests/TestContentLessonEntity.cs diff --git a/API_SQLuedo/TestEF/EntitiesTests/ConcreteContentLessonEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/ConcreteContentLessonEntity.cs new file mode 100644 index 0000000..15789eb --- /dev/null +++ b/API_SQLuedo/TestEF/EntitiesTests/ConcreteContentLessonEntity.cs @@ -0,0 +1,21 @@ +using Entities; + +namespace TestEF.EntitiesTests; + +public class ConcreteContentLessonEntity : ContentLessonEntity +{ + public ConcreteContentLessonEntity(int id, string contentContent, string contentTitle) + : base(id, contentContent, contentTitle) + { + } + + public ConcreteContentLessonEntity(int id, int lessonId, string contentContent, string contentTitle) + : base(id, lessonId, contentContent, contentTitle) + { + } + + public ConcreteContentLessonEntity(string contentContent, string contentTitle) + : base(contentContent, contentTitle) + { + } +} \ No newline at end of file diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestContentLessonEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestContentLessonEntity.cs new file mode 100644 index 0000000..6d2bd7e --- /dev/null +++ b/API_SQLuedo/TestEF/EntitiesTests/TestContentLessonEntity.cs @@ -0,0 +1,55 @@ +namespace TestEF.EntitiesTests; + +public class TestContentLessonEntity +{ + [Fact] + public void Constructor_ShouldSetProperties_WhenCalledWithTwoParameters() + { + // Arrange + const string contentContent = "Content"; + const string contentTitle = "Title"; + + // Act + var concreteContentLessonEntity = new ConcreteContentLessonEntity(contentContent, contentTitle); + + // Assert + Assert.Equal(contentContent, concreteContentLessonEntity.ContentContent); + Assert.Equal(contentTitle, concreteContentLessonEntity.ContentTitle); + } + + [Fact] + public void Constructor_ShouldSetProperties_WhenCalledWithThreeParameters() + { + // Arrange + const int id = 1; + const string contentContent = "Content"; + const string contentTitle = "Title"; + + // Act + var concreteContentLessonEntity = new ConcreteContentLessonEntity(id, contentContent, contentTitle); + + // Assert + Assert.Equal(id, concreteContentLessonEntity.Id); + Assert.Equal(contentContent, concreteContentLessonEntity.ContentContent); + Assert.Equal(contentTitle, concreteContentLessonEntity.ContentTitle); + } + + [Fact] + public void Constructor_ShouldSetProperties_WhenCalledWithFourParameters() + { + // Arrange + const int id = 1; + const int lessonId = 2; + const string contentContent = "Content"; + const string contentTitle = "Title"; + + // Act + var concreteContentLessonEntity = new ConcreteContentLessonEntity(id, lessonId, contentContent, contentTitle); + + // Assert + Assert.Equal(id, concreteContentLessonEntity.Id); + Assert.Equal(lessonId, concreteContentLessonEntity.LessonId); + Assert.Equal(contentContent, concreteContentLessonEntity.ContentContent); + Assert.Equal(contentTitle, concreteContentLessonEntity.ContentTitle); + } +} \ No newline at end of file