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 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/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/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 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 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