From 534589dbdf5de9d5543d107238de7c7d42178e72 Mon Sep 17 00:00:00 2001 From: Erwan MENAGER Date: Fri, 15 Mar 2024 17:19:58 +0100 Subject: [PATCH 01/13] =?UTF-8?q?Impl=C3=A9mentation=20des=20TU=20pour=20l?= =?UTF-8?q?es=20DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API_SQLuedo/TestEF/Dto/TestInquiryDTO.cs | 41 +++++++++++++++ API_SQLuedo/TestEF/Dto/TestInquiryTableDTO.cs | 28 +++++++++++ API_SQLuedo/TestEF/Dto/TestLessonDTO.cs | 41 +++++++++++++++ API_SQLuedo/TestEF/Dto/TestNotepadDTO.cs | 41 +++++++++++++++ API_SQLuedo/TestEF/Dto/TestParagraphDTO.cs | 50 +++++++++++++++++++ API_SQLuedo/TestEF/Dto/TestSolutionDTO.cs | 48 ++++++++++++++++++ API_SQLuedo/TestEF/Dto/TestSuccessDTO.cs | 28 +++++++++++ API_SQLuedo/TestEF/Dto/TestUserDTO.cs | 46 +++++++++++++++++ 8 files changed, 323 insertions(+) create mode 100644 API_SQLuedo/TestEF/Dto/TestInquiryDTO.cs create mode 100644 API_SQLuedo/TestEF/Dto/TestInquiryTableDTO.cs create mode 100644 API_SQLuedo/TestEF/Dto/TestLessonDTO.cs create mode 100644 API_SQLuedo/TestEF/Dto/TestNotepadDTO.cs create mode 100644 API_SQLuedo/TestEF/Dto/TestParagraphDTO.cs create mode 100644 API_SQLuedo/TestEF/Dto/TestSolutionDTO.cs create mode 100644 API_SQLuedo/TestEF/Dto/TestSuccessDTO.cs create mode 100644 API_SQLuedo/TestEF/Dto/TestUserDTO.cs diff --git a/API_SQLuedo/TestEF/Dto/TestInquiryDTO.cs b/API_SQLuedo/TestEF/Dto/TestInquiryDTO.cs new file mode 100644 index 0000000..966c29f --- /dev/null +++ b/API_SQLuedo/TestEF/Dto/TestInquiryDTO.cs @@ -0,0 +1,41 @@ +using Dto; + +namespace TestEF.Dto; + +public class TestInquiryDTO +{ + private const int _id = 1; + private const string _title = "Title"; + private const string _description = "_description"; + private const bool _isUser = true; + + [Fact] + public void TestConstructorWithId() + { + InquiryDTO inquiry = new InquiryDTO(_id, _title, _description, _isUser); + Assert.Equal(_id, inquiry.Id); + Assert.Equal(_title, inquiry.Title); + Assert.Equal(_description, inquiry.Description); + Assert.True(inquiry.IsUser); + } + + [Fact] + public void TestConstructorWithoutId() + { + InquiryDTO inquiry = new InquiryDTO(_title,_description,_isUser); + Assert.Equal(0, inquiry.Id); + Assert.Equal(_title,inquiry.Title); + Assert.Equal(_description,inquiry.Description); + Assert.True(inquiry.IsUser); + } + + [Fact] + public void TestConstructorWithAllAttributes() + { + InquiryDTO inquiry = new InquiryDTO(_id,_title,_description,_isUser); + Assert.Equal(_id, inquiry.Id); + Assert.Equal(_title,inquiry.Title); + Assert.Equal(_description,inquiry.Description); + Assert.True(inquiry.IsUser); + } +} \ No newline at end of file diff --git a/API_SQLuedo/TestEF/Dto/TestInquiryTableDTO.cs b/API_SQLuedo/TestEF/Dto/TestInquiryTableDTO.cs new file mode 100644 index 0000000..93be409 --- /dev/null +++ b/API_SQLuedo/TestEF/Dto/TestInquiryTableDTO.cs @@ -0,0 +1,28 @@ +using Dto; + +namespace TestEF.Dto; + +public class TestInquiryTableDTO +{ + private const int _id = 1; + private const string _database = "database"; + private const string _connection = "_connection"; + + [Fact] + public void TestConstructorWithId() + { + InquiryTableDTO inquiry = new InquiryTableDTO(_id, _database, _connection); + Assert.Equal(_id, inquiry.OwnerId); + Assert.Equal(_database, inquiry.DatabaseName); + Assert.Equal(_connection, inquiry.ConnectionInfo); + } + + [Fact] + public void TestDefaultConstructor() + { + InquiryTableDTO inquiry = new InquiryTableDTO(); + Assert.Equal(0, inquiry.OwnerId); + Assert.Null(inquiry.DatabaseName); + Assert.Null(inquiry.ConnectionInfo); + } +} \ No newline at end of file diff --git a/API_SQLuedo/TestEF/Dto/TestLessonDTO.cs b/API_SQLuedo/TestEF/Dto/TestLessonDTO.cs new file mode 100644 index 0000000..ec46211 --- /dev/null +++ b/API_SQLuedo/TestEF/Dto/TestLessonDTO.cs @@ -0,0 +1,41 @@ +using Dto; + +namespace TestEF.Dto; + +public class TestLessonDTO +{ + private const int _id = 42; + private const string _title = "Title"; + private const string _lastPublisher = "Last Publisher"; + private static DateOnly _lastEdit = new DateOnly(); + + [Fact] + public void TestDefaultConstructor() + { + LessonDTO lesson = new LessonDTO(); + Assert.Equal(0, lesson.Id); + Assert.Null(lesson.Title); + Assert.Null(lesson.LastPublisher); + Assert.Null(lesson.LastEdit); + } + + [Fact] + public void TestConstructorWithoutId() + { + LessonDTO lesson = new LessonDTO(_title,_lastPublisher,_lastEdit); + Assert.Equal(0, lesson.Id); + Assert.Equal(_title,lesson.Title); + Assert.Equal(_lastPublisher,lesson.LastPublisher); + Assert.Equal(_lastEdit,lesson.LastEdit); + } + + [Fact] + public void TestConstructorWithAllAttributes() + { + LessonDTO lesson = new LessonDTO(_id,_title,_lastPublisher,_lastEdit); + Assert.Equal(_id, lesson.Id); + Assert.Equal(_title,lesson.Title); + Assert.Equal(_lastPublisher,lesson.LastPublisher); + Assert.Equal(_lastEdit,lesson.LastEdit); + } +} \ No newline at end of file diff --git a/API_SQLuedo/TestEF/Dto/TestNotepadDTO.cs b/API_SQLuedo/TestEF/Dto/TestNotepadDTO.cs new file mode 100644 index 0000000..ad76d8a --- /dev/null +++ b/API_SQLuedo/TestEF/Dto/TestNotepadDTO.cs @@ -0,0 +1,41 @@ +using Dto; + +namespace TestEF.Dto; + +public class TestNotepadDTO +{ + private const int _id = 42; + private const int _userId = 42; + private const int _inquiryId = 42; + private const string _notes = "This is some notes example"; + + [Fact] + public void TestDefaultConstructor() + { + NotepadDTO notepad = new NotepadDTO(); + Assert.Equal(0,notepad.Id); + Assert.Equal(0,notepad.UserId); + Assert.Equal(0,notepad.InquiryId); + Assert.Null(notepad.Notes); + } + + [Fact] + public void TestConstructorWithoutId() + { + NotepadDTO notepad = new NotepadDTO(_userId,_inquiryId,_notes); + Assert.Equal(0,notepad.Id); + Assert.Equal(_userId,notepad.UserId); + Assert.Equal(_inquiryId,notepad.InquiryId); + Assert.Equal(_notes,notepad.Notes); + } + + [Fact] + public void TestConstructorWithAllAttributes() + { + NotepadDTO notepad = new NotepadDTO(_id,_userId,_inquiryId,_notes); + Assert.Equal(_id,notepad.Id); + Assert.Equal(_userId,notepad.UserId); + Assert.Equal(_inquiryId,notepad.InquiryId); + Assert.Equal(_notes,notepad.Notes); + } +} \ No newline at end of file diff --git a/API_SQLuedo/TestEF/Dto/TestParagraphDTO.cs b/API_SQLuedo/TestEF/Dto/TestParagraphDTO.cs new file mode 100644 index 0000000..95dee02 --- /dev/null +++ b/API_SQLuedo/TestEF/Dto/TestParagraphDTO.cs @@ -0,0 +1,50 @@ +using Dto; + +namespace TestEF.Dto; + +public class TestParagraphDTO +{ + private const int _id = 42; + private const string _title = "Title"; + private const string _info = "Info"; + private const string _content = "Content"; + private const string _query = "Query"; + private const string _comment = "Comment"; + + [Fact] + public void TestDefaultConstructor() + { + ParagraphDTO paragraph = new ParagraphDTO(); + Assert.Equal(0, paragraph.Id); + Assert.Null(paragraph.Title); + Assert.Null(paragraph.Info); + Assert.Null(paragraph.Content); + Assert.Null(paragraph.Query); + Assert.Null(paragraph.Comment); + } + + [Fact] + public void TestConstructorWithoutId() + { + ParagraphDTO paragraph = new ParagraphDTO(_title,_content,_info,_query,_comment, 10); + Assert.Equal(0, paragraph.Id); + Assert.Equal(_title,paragraph.Title); + Assert.Equal(_info,paragraph.Info); + Assert.Equal(_content,paragraph.Content); + Assert.Equal(_query,paragraph.Query); + Assert.Equal(_comment,paragraph.Comment); + } + + [Fact] + public void TestConstructorWithAllAttributes() + { + ParagraphDTO paragraph = new ParagraphDTO(_id,_title,_content,_info,_query,_comment,10); + Assert.Equal(_id, paragraph.Id); + Assert.Equal(_title,paragraph.Title); + Assert.Equal(_info,paragraph.Info); + Assert.Equal(_content,paragraph.Content); + Assert.Equal(_query,paragraph.Query); + Assert.Equal(_comment,paragraph.Comment); + Assert.Equal(10, paragraph.LessonId); + } +} \ No newline at end of file diff --git a/API_SQLuedo/TestEF/Dto/TestSolutionDTO.cs b/API_SQLuedo/TestEF/Dto/TestSolutionDTO.cs new file mode 100644 index 0000000..7a137b2 --- /dev/null +++ b/API_SQLuedo/TestEF/Dto/TestSolutionDTO.cs @@ -0,0 +1,48 @@ +using Dto; + +namespace TestEF.Dto; + +public class TestSolutionDTO +{ + private const string _murdererFirstName = "John"; + private const string _murdererLastName = "Doe"; + private const string _murderPlace = "WhiteHouse"; + private const string _murderWeapon = "Nuclear Bomb"; + private const string _explaination = "This is an explaination"; + private const int _inquiryId = 42; + + [Fact] + public void TestDefaultConstructor() + { + SolutionDTO solution = new SolutionDTO(); + Assert.Equal(0,solution.OwnerId); + Assert.Null(solution.MurdererFirstName); + Assert.Null(solution.MurdererLastName); + Assert.Null(solution.MurderPlace); + Assert.Null(solution.MurderWeapon); + Assert.Null(solution.Explanation); + } + [Fact] + public void TestConstructorWithoutOwnerId() + { + SolutionDTO solution = new SolutionDTO(_murdererFirstName,_murdererLastName,_murderPlace,_murderWeapon, _explaination); + Assert.Equal(0,solution.OwnerId); + Assert.Equal(_murdererFirstName,solution.MurdererFirstName); + Assert.Equal(_murdererLastName,solution.MurdererLastName); + Assert.Equal(_murderPlace,solution.MurderPlace); + Assert.Equal(_murderWeapon,solution.MurderWeapon); + Assert.Equal(_explaination, solution.Explanation); + } + + [Fact] + public void TestConstructorWithAllAttributes() + { + SolutionDTO solution = new SolutionDTO(_inquiryId,_murdererFirstName,_murdererLastName,_murderPlace,_murderWeapon, _explaination); + Assert.Equal(_inquiryId,solution.OwnerId); + Assert.Equal(_murdererFirstName,solution.MurdererFirstName); + Assert.Equal(_murdererLastName,solution.MurdererLastName); + Assert.Equal(_murderPlace,solution.MurderPlace); + Assert.Equal(_murderWeapon,solution.MurderWeapon); + Assert.Equal(_explaination, solution.Explanation); + } +} \ No newline at end of file diff --git a/API_SQLuedo/TestEF/Dto/TestSuccessDTO.cs b/API_SQLuedo/TestEF/Dto/TestSuccessDTO.cs new file mode 100644 index 0000000..097e35d --- /dev/null +++ b/API_SQLuedo/TestEF/Dto/TestSuccessDTO.cs @@ -0,0 +1,28 @@ +using Dto; + +namespace TestEF.Dto; + +public class TestSuccessDTO +{ + private const int _userId = 42; + private const int _inquiryId = 7; + private const bool _isFinished = true; + + [Fact] + public void TestDefaultConstructor() + { + SuccessDTO success = new SuccessDTO(); + Assert.Equal(0, success.UserId); + Assert.Equal(0, success.InquiryId); + Assert.False(success.IsFinished); + } + + [Fact] + public void TestConstructorWithIds() + { + SuccessDTO success = new SuccessDTO(_userId, _inquiryId, _isFinished); + Assert.Equal(_userId, success.UserId); + Assert.Equal(_inquiryId, success.InquiryId); + Assert.True(success.IsFinished); + } +} \ No newline at end of file diff --git a/API_SQLuedo/TestEF/Dto/TestUserDTO.cs b/API_SQLuedo/TestEF/Dto/TestUserDTO.cs new file mode 100644 index 0000000..b1e68ca --- /dev/null +++ b/API_SQLuedo/TestEF/Dto/TestUserDTO.cs @@ -0,0 +1,46 @@ +using Dto; + +namespace TestEF.Dto +{ + public class TestUserDTO + { + private const string _username = "username"; + private const string _email = "example@email.com"; + private const string _password = "password"; + private const bool _isAdmin = true; + private const int _id = 42; + + [Fact] + public void TestDefaultConstructor() + { + UserDTO user = new UserDTO(); + Assert.Equal(0,user.Id); + Assert.Null(user.Username); + Assert.Null(user.Email); + Assert.Null(user.Password); + Assert.False(user.IsAdmin); + } + + [Fact] + public void TestConstructorWithoutId() + { + UserDTO user = new UserDTO(_username, _password, _email, _isAdmin); + Assert.Equal(0,user.Id); + Assert.Equal(_username, user.Username); + Assert.Equal(_email, user.Email); + Assert.Equal(_password, user.Password); + Assert.True(user.IsAdmin); + } + + [Fact] + public void TestConstructorWithoutAllAttributes() + { + UserDTO user = new UserDTO(_id, _username, _password, _email, _isAdmin); + Assert.Equal(_id,user.Id); + Assert.Equal(_username, user.Username); + Assert.Equal(_email, user.Email); + Assert.Equal(_password, user.Password); + Assert.True(user.IsAdmin); + } + } +} \ No newline at end of file -- 2.36.3 From 210093f5658e921785c2423f88497a109441f4bf Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 10:24:35 +0100 Subject: [PATCH 02/13] Suppression constructeur dde blacklistentity --- API_SQLuedo/EntityFramework/BlackListEntity.cs | 6 ------ API_SQLuedo/Shared/Mapper/BlackListMapper.cs | 14 +++++++++++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/API_SQLuedo/EntityFramework/BlackListEntity.cs b/API_SQLuedo/EntityFramework/BlackListEntity.cs index e4b744b..800aeff 100644 --- a/API_SQLuedo/EntityFramework/BlackListEntity.cs +++ b/API_SQLuedo/EntityFramework/BlackListEntity.cs @@ -9,10 +9,4 @@ public class BlackListEntity [Key] public string Email { get; set; } public DateOnly ExpirationDate { get; set; } - public BlackListEntity() { } - public BlackListEntity(string email, DateOnly expirationDate) - { - Email = email; - ExpirationDate = expirationDate; - } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/Mapper/BlackListMapper.cs b/API_SQLuedo/Shared/Mapper/BlackListMapper.cs index 77427c4..8dc6ea4 100644 --- a/API_SQLuedo/Shared/Mapper/BlackListMapper.cs +++ b/API_SQLuedo/Shared/Mapper/BlackListMapper.cs @@ -26,13 +26,21 @@ public static class BlackListMapper return new BlackList(ent.Email, ent.ExpirationDate); } - public static BlackListEntity FromDTOToEntity(this BlackListDTO dto) + public static BlackListEntity FromDtoToEntity(this BlackListDTO dto) { - return new BlackListEntity(dto.Email, dto.ExpirationDate); + return new BlackListEntity + { + Email = dto.Email, + ExpirationDate = dto.ExpirationDate + }; } public static BlackListEntity FromModelToEntity(this BlackList model) { - return new BlackListEntity(model.Email, model.ExpirationDate); + return new BlackListEntity + { + Email = model.Email, + ExpirationDate = model.ExpirationDate + }; } } \ No newline at end of file -- 2.36.3 From b22e31d3523a6ada3f7f07e68438087b6cfb18c8 Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 10:31:56 +0100 Subject: [PATCH 03/13] Modification du constructeur de paragrapheEntity --- .../EntityFramework/ContentLessonEntity.cs | 26 -------- .../EntityFramework/ParagraphEntity.cs | 24 ------- API_SQLuedo/Shared/Mapper/ParagraphMapper.cs | 27 ++++++-- API_SQLuedo/Shared/ParagraphDataService.cs | 10 +-- .../ConcreteContentLessonEntity.cs | 21 ------- .../EntitiesTests/TestContentLessonEntity.cs | 55 ---------------- .../EntitiesTests/TestParagraphEntity.cs | 62 ++++++++++++------- 7 files changed, 65 insertions(+), 160 deletions(-) delete mode 100644 API_SQLuedo/TestEF/EntitiesTests/ConcreteContentLessonEntity.cs delete mode 100644 API_SQLuedo/TestEF/EntitiesTests/TestContentLessonEntity.cs diff --git a/API_SQLuedo/EntityFramework/ContentLessonEntity.cs b/API_SQLuedo/EntityFramework/ContentLessonEntity.cs index ee81947..7717d35 100644 --- a/API_SQLuedo/EntityFramework/ContentLessonEntity.cs +++ b/API_SQLuedo/EntityFramework/ContentLessonEntity.cs @@ -10,30 +10,4 @@ public abstract class ContentLessonEntity public string ContentTitle { get; set; } [ForeignKey(nameof(Lesson))] public int LessonId { get; set; } public LessonEntity Lesson { get; set; } = null!; - - protected ContentLessonEntity() - { - } - - protected ContentLessonEntity(int id, string contentContent, string contentTitle) - { - Id = id; - ContentContent = contentContent; - ContentTitle = contentTitle; - } - - - protected ContentLessonEntity(int id, int lessonId, string contentContent, string contentTitle) - { - Id = id; - LessonId = lessonId; - ContentContent = contentContent; - ContentTitle = contentTitle; - } - - protected ContentLessonEntity(string contentContent, string contentTitle) - { - ContentContent = contentContent; - ContentTitle = contentTitle; - } } \ No newline at end of file diff --git a/API_SQLuedo/EntityFramework/ParagraphEntity.cs b/API_SQLuedo/EntityFramework/ParagraphEntity.cs index b7ab14e..6b4a8c2 100644 --- a/API_SQLuedo/EntityFramework/ParagraphEntity.cs +++ b/API_SQLuedo/EntityFramework/ParagraphEntity.cs @@ -14,28 +14,4 @@ public class ParagraphEntity : ContentLessonEntity public string Info { get; set; } public string Query { get; set; } public string Comment { get; set; } - - public ParagraphEntity() - { - } - - public ParagraphEntity(int id, string title, string content, string info, string query, - string comment, int idLesson) : base(id, idLesson, content, title) - { - Title = title; - Content = content; - Info = info; - Query = query; - Comment = comment; - } - - public ParagraphEntity(string title, string content, string info, string query, string comment) : base(content, - title) - { - Title = title; - Content = content; - Info = info; - Query = query; - Comment = comment; - } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/Mapper/ParagraphMapper.cs b/API_SQLuedo/Shared/Mapper/ParagraphMapper.cs index 3d029e5..4d76665 100644 --- a/API_SQLuedo/Shared/Mapper/ParagraphMapper.cs +++ b/API_SQLuedo/Shared/Mapper/ParagraphMapper.cs @@ -16,7 +16,7 @@ public static class ParagraphMapper return new Paragraph(model.ContentTitle, model.ContentContent, model.Info, model.Query, model.Comment); } - public static ParagraphDTO FromEntityToDTO(this ParagraphEntity model) + public static ParagraphDTO FromEntityToDto(this ParagraphEntity model) { return new ParagraphDTO(model.Id, model.ContentTitle, model.ContentContent, model.Info, model.Query, model.Comment, model.LessonId); @@ -28,15 +28,30 @@ public static class ParagraphMapper model.Comment, model.LessonId); } - public static ParagraphEntity FromDTOToEntity(this ParagraphDTO dto) + public static ParagraphEntity FromDtoToEntity(this ParagraphDTO dto) { - return new ParagraphEntity(dto.Id, dto.ContentTitle, dto.ContentContent, dto.Info, dto.Query, dto.Comment, - dto.LessonId); + return new ParagraphEntity + { + Id = dto.Id, + ContentTitle = dto.ContentTitle, + ContentContent = dto.ContentContent, + Info = dto.Info, + Query = dto.Query, + Comment = dto.Comment, + LessonId = dto.LessonId + }; } public static ParagraphEntity FromModelToEntity(this Paragraph model) { - return new ParagraphEntity(model.Id, model.ContentTitle, model.ContentContent, model.Info, model.Query, - model.Comment, model.LessonId); + return new ParagraphEntity + { + Id = model.Id, + ContentTitle = model.ContentTitle, + ContentContent = model.ContentContent, + Info = model.Info, + Query = model.Query, + Comment = model.Comment, LessonId = model.LessonId + }; } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/ParagraphDataService.cs b/API_SQLuedo/Shared/ParagraphDataService.cs index 7954f78..bfa3bb0 100644 --- a/API_SQLuedo/Shared/ParagraphDataService.cs +++ b/API_SQLuedo/Shared/ParagraphDataService.cs @@ -43,7 +43,7 @@ public class ParagraphDataService : IParagraphDataService break; } var paragraphs = query.ToList(); - return paragraphs.Select(s => s.FromEntityToDTO()); + return paragraphs.Select(s => s.FromEntityToDto()); } public ParagraphDTO GetParagraphById(int id) @@ -54,7 +54,7 @@ public class ParagraphDataService : IParagraphDataService throw new ArgumentException("Impossible de trouver le paragraphe", nameof(id)); } - return paragraphEntity.FromEntityToDTO(); + return paragraphEntity.FromEntityToDto(); } public ParagraphDTO GetParagraphByTitle(string title) @@ -65,7 +65,7 @@ public class ParagraphDataService : IParagraphDataService throw new ArgumentException("Impossible de trouver le paragraphe", nameof(title)); } - return paragraphEntity.FromEntityToDTO(); + return paragraphEntity.FromEntityToDto(); } public bool DeleteParagraph(int id) @@ -95,7 +95,7 @@ public class ParagraphDataService : IParagraphDataService updatingParagraph.Query = paragraphDTO.Query; updatingParagraph.Comment = paragraphDTO.Comment; DbContext.SaveChangesAsync(); - return updatingParagraph.FromEntityToDTO(); + return updatingParagraph.FromEntityToDto(); } public ParagraphDTO CreateParagraph(string title, string content, string info, string query, string comment, int lessonId) @@ -109,7 +109,7 @@ public class ParagraphDataService : IParagraphDataService Comment = comment, LessonId = lessonId }; - DbContext.Paragraphs.Add(newParagraphEntity.FromDTOToEntity()); + DbContext.Paragraphs.Add(newParagraphEntity.FromDtoToEntity()); DbContext.SaveChangesAsync(); return newParagraphEntity; } diff --git a/API_SQLuedo/TestEF/EntitiesTests/ConcreteContentLessonEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/ConcreteContentLessonEntity.cs deleted file mode 100644 index 15789eb..0000000 --- a/API_SQLuedo/TestEF/EntitiesTests/ConcreteContentLessonEntity.cs +++ /dev/null @@ -1,21 +0,0 @@ -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 deleted file mode 100644 index 6d2bd7e..0000000 --- a/API_SQLuedo/TestEF/EntitiesTests/TestContentLessonEntity.cs +++ /dev/null @@ -1,55 +0,0 @@ -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/TestParagraphEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestParagraphEntity.cs index 1f2228d..6853fc1 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestParagraphEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestParagraphEntity.cs @@ -1,20 +1,20 @@ using Entities; -namespace TestEF; +namespace TestEF.EntitiesTests; public class TestParagraphEntity { - private const int _id = 42; - private const string _title = "Title"; - private const string _info = "Info"; - private const string _content = "Content"; - private const string _query = "Query"; - private const string _comment = "Comment"; + private const int Id = 42; + private const string Title = "Title"; + private const string Info = "Info"; + private const string Content = "Content"; + private const string Query = "Query"; + private const string Comment = "Comment"; [Fact] public void TestDefaultConstructor() { - ParagraphEntity paragraph = new ParagraphEntity(); + var paragraph = new ParagraphEntity(); Assert.Equal(0, paragraph.Id); Assert.Null(paragraph.Title); Assert.Null(paragraph.Info); @@ -22,29 +22,45 @@ public class TestParagraphEntity Assert.Null(paragraph.Query); Assert.Null(paragraph.Comment); } - + [Fact] public void TestConstructorWithoutId() { - ParagraphEntity paragraph = new ParagraphEntity(_title,_content,_info,_query,_comment); + var paragraph = new ParagraphEntity + { + Title = Title, + Content = Content, + Info = Info, + Query = Query, + Comment = Comment + }; Assert.Equal(0, paragraph.Id); - Assert.Equal(_title,paragraph.Title); - Assert.Equal(_info,paragraph.Info); - Assert.Equal(_content,paragraph.Content); - Assert.Equal(_query,paragraph.Query); - Assert.Equal(_comment,paragraph.Comment); + Assert.Equal(Title, paragraph.Title); + Assert.Equal(Info, paragraph.Info); + Assert.Equal(Content, paragraph.Content); + Assert.Equal(Query, paragraph.Query); + Assert.Equal(Comment, paragraph.Comment); } - + [Fact] public void TestConstructorWithAllAttributes() { - ParagraphEntity paragraph = new ParagraphEntity(_id,_title,_content,_info,_query,_comment,10); - Assert.Equal(_id, paragraph.Id); - Assert.Equal(_title,paragraph.Title); - Assert.Equal(_info,paragraph.Info); - Assert.Equal(_content,paragraph.Content); - Assert.Equal(_query,paragraph.Query); - Assert.Equal(_comment,paragraph.Comment); + var paragraph = new ParagraphEntity + { + Id = Id, + Title = Title, + Content = Content, + Info = Info, + Query = Query, + Comment = Comment, + LessonId = 10 + }; + Assert.Equal(Id, paragraph.Id); + Assert.Equal(Title, paragraph.Title); + Assert.Equal(Info, paragraph.Info); + Assert.Equal(Content, paragraph.Content); + Assert.Equal(Query, paragraph.Query); + Assert.Equal(Comment, paragraph.Comment); Assert.Equal(10, paragraph.LessonId); } } \ No newline at end of file -- 2.36.3 From d0efe824ec3400cf32b1239ebbbba48b1f53dd96 Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 10:42:04 +0100 Subject: [PATCH 04/13] Suppression des constructeurs de Inquiry --- API_SQLuedo/EntityFramework/InquiryEntity.cs | 27 +---------- API_SQLuedo/Shared/InquiryDataService.cs | 10 ++-- API_SQLuedo/Shared/Mapper/InquiryMapper.cs | 24 +++++++--- API_SQLuedo/Shared/Mapper/NotepadMapper.cs | 12 ++++- API_SQLuedo/Shared/Mapper/SolutionMapper.cs | 12 ++++- API_SQLuedo/Shared/Mapper/SuccessMapper.cs | 12 ++++- .../StubbedContextLib/StubbedContext.cs | 28 +++++++++-- API_SQLuedo/TestConsoleEf/Program.cs | 14 +++--- .../TestEF/EntitiesTests/TestInquiryEntity.cs | 48 ++++++++++++------- 9 files changed, 116 insertions(+), 71 deletions(-) diff --git a/API_SQLuedo/EntityFramework/InquiryEntity.cs b/API_SQLuedo/EntityFramework/InquiryEntity.cs index 5de9dd9..b44aaa8 100644 --- a/API_SQLuedo/EntityFramework/InquiryEntity.cs +++ b/API_SQLuedo/EntityFramework/InquiryEntity.cs @@ -5,33 +5,8 @@ namespace Entities; public class InquiryEntity { - [Key] public int Id { get; } + [Key] public int Id { get; set; } public string Title { get; set; } public string Description { get; set; } public bool IsUser { get; set; } - - public InquiryEntity() - { - } - - public InquiryEntity(int id) - { - Id = id; - } - - public InquiryEntity(string title, string description, bool isUser) - { - Id = 0; - Title = title; - Description = description; - IsUser = isUser; - } - - public InquiryEntity(int id, string title, string description, bool isUser) - { - Id = id; - Title = title; - Description = description; - IsUser = isUser; - } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/InquiryDataService.cs b/API_SQLuedo/Shared/InquiryDataService.cs index 691e24a..7c04024 100644 --- a/API_SQLuedo/Shared/InquiryDataService.cs +++ b/API_SQLuedo/Shared/InquiryDataService.cs @@ -38,7 +38,7 @@ public class InquiryDataService : IInquiryDataService } var inquiries = query.ToList(); - return inquiries.Select(s => s.FromEntityToDTO()); + return inquiries.Select(s => s.FromEntityToDto()); } public InquiryDTO GetInquiryById(int id) @@ -49,7 +49,7 @@ public class InquiryDataService : IInquiryDataService throw new ArgumentException("Impossible de trouver l'enquête", nameof(id)); } - return inquiryEntity.FromEntityToDTO(); + return inquiryEntity.FromEntityToDto(); } public InquiryDTO GetInquiryByTitle(string title) @@ -60,13 +60,13 @@ public class InquiryDataService : IInquiryDataService throw new ArgumentException("Impossible de trouver l'enquête", nameof(title)); } - return inquiryEntity.FromEntityToDTO(); + return inquiryEntity.FromEntityToDto(); } public InquiryDTO CreateInquiry(string title, string description, bool isUser) { var newInquiryEntity = new InquiryDTO(title, description, isUser); - DbContext.Inquiries.Add(newInquiryEntity.FromDTOToEntity()); + DbContext.Inquiries.Add(newInquiryEntity.FromDtoToEntity()); DbContext.SaveChangesAsync(); return newInquiryEntity; } @@ -96,6 +96,6 @@ public class InquiryDataService : IInquiryDataService updatingInquiry.Description = inquiry.Description; updatingInquiry.IsUser = inquiry.IsUser; DbContext.SaveChangesAsync(); - return updatingInquiry.FromEntityToDTO(); + return updatingInquiry.FromEntityToDto(); } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/Mapper/InquiryMapper.cs b/API_SQLuedo/Shared/Mapper/InquiryMapper.cs index 90f1f15..fb57f82 100644 --- a/API_SQLuedo/Shared/Mapper/InquiryMapper.cs +++ b/API_SQLuedo/Shared/Mapper/InquiryMapper.cs @@ -6,7 +6,7 @@ namespace Shared.Mapper; public static class InquiryMapper { - public static Inquiry FromDTOToModel(this InquiryDTO inqDto) + public static Inquiry FromDtoToModel(this InquiryDTO inqDto) { return new Inquiry(inqDto.Id, inqDto.Title, inqDto.Description, inqDto.IsUser); } @@ -19,20 +19,32 @@ public static class InquiryMapper public static InquiryEntity FromModelToEntity(this Inquiry inq) { - return new InquiryEntity(inq.Id, inq.Title, inq.Description, inq.IsUser); + return new InquiryEntity + { + Id = inq.Id, + Title = inq.Title, + Description = inq.Description, + IsUser = inq.IsUser + }; } - public static InquiryEntity FromDTOToEntity(this InquiryDTO inqDto) + public static InquiryEntity FromDtoToEntity(this InquiryDTO inqDto) { - return new InquiryEntity(inqDto.Id, inqDto.Title, inqDto.Description, inqDto.IsUser); + return new InquiryEntity + { + Id = inqDto.Id, + Title = inqDto.Title, + Description = inqDto.Description, + IsUser = inqDto.IsUser + }; } - public static InquiryDTO FromModelToDTO(this Inquiry inq) + public static InquiryDTO FromModelToDto(this Inquiry inq) { return new InquiryDTO(inq.Id, inq.Title, inq.Description, inq.IsUser); } - public static InquiryDTO FromEntityToDTO(this InquiryEntity inqEntity) + public static InquiryDTO FromEntityToDto(this InquiryEntity inqEntity) { return new InquiryDTO(inqEntity.Id, inqEntity.Title, inqEntity.Description, inqEntity.IsUser); } diff --git a/API_SQLuedo/Shared/Mapper/NotepadMapper.cs b/API_SQLuedo/Shared/Mapper/NotepadMapper.cs index 5de18a8..3862d02 100644 --- a/API_SQLuedo/Shared/Mapper/NotepadMapper.cs +++ b/API_SQLuedo/Shared/Mapper/NotepadMapper.cs @@ -28,13 +28,21 @@ public static class NotepadMapper public static NotepadEntity FromDTOToEntity(this NotepadDTO dto) { - return new NotepadEntity(dto.Id, new UserEntity(dto.UserId), dto.UserId, new InquiryEntity(dto.InquiryId), + return new NotepadEntity(dto.Id, new UserEntity(dto.UserId), dto.UserId, + new InquiryEntity + { + Id = dto.InquiryId + }, dto.Notes); } public static NotepadEntity FromModelToEntity(this Notepad not) { - return new NotepadEntity(not.Id, new UserEntity(not.UserId), not.UserId, new InquiryEntity(not.InquiryId), + return new NotepadEntity(not.Id, new UserEntity(not.UserId), not.UserId, + new InquiryEntity + { + Id = not.InquiryId + }, not.Notes); } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/Mapper/SolutionMapper.cs b/API_SQLuedo/Shared/Mapper/SolutionMapper.cs index 9f5f49a..deb56e5 100644 --- a/API_SQLuedo/Shared/Mapper/SolutionMapper.cs +++ b/API_SQLuedo/Shared/Mapper/SolutionMapper.cs @@ -32,13 +32,21 @@ public static class SolutionMapper public static SolutionEntity FromModelToEntity(this Solution model) { - return new SolutionEntity(model.OwnerId, new InquiryEntity(model.OwnerId), model.MurdererFirstName, + return new SolutionEntity(model.OwnerId, new InquiryEntity + { + Id = model.OwnerId + }, + model.MurdererFirstName, model.MurdererLastName, model.MurderPlace, model.MurderWeapon, model.Explanation); } public static SolutionEntity FromDTOToEntity(this SolutionDTO dto) { - return new SolutionEntity(dto.OwnerId, new InquiryEntity(dto.OwnerId), dto.MurdererFirstName, + return new SolutionEntity(dto.OwnerId, new InquiryEntity + { + Id = dto.OwnerId + }, + dto.MurdererFirstName, dto.MurdererLastName, dto.MurderPlace, dto.MurderWeapon, dto.Explanation); } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/Mapper/SuccessMapper.cs b/API_SQLuedo/Shared/Mapper/SuccessMapper.cs index ea5ef02..3912f13 100644 --- a/API_SQLuedo/Shared/Mapper/SuccessMapper.cs +++ b/API_SQLuedo/Shared/Mapper/SuccessMapper.cs @@ -29,12 +29,20 @@ public static class SuccessMapper public static SuccessEntity FromDTOToEntity(this SuccessDTO dto) { return new SuccessEntity(dto.UserId, new UserEntity(dto.UserId), dto.InquiryId, - new InquiryEntity(dto.InquiryId), dto.IsFinished); + new InquiryEntity + { + Id = dto.InquiryId + }, + dto.IsFinished); } public static SuccessEntity FromModelToEntity(this Success suc) { return new SuccessEntity(suc.UserId, new UserEntity(suc.UserId), suc.InquiryId, - new InquiryEntity(suc.InquiryId), suc.IsFinished); + new InquiryEntity + { + Id = suc.InquiryId + }, + suc.IsFinished); } } \ No newline at end of file diff --git a/API_SQLuedo/StubbedContextLib/StubbedContext.cs b/API_SQLuedo/StubbedContextLib/StubbedContext.cs index 925eb10..263f6ee 100644 --- a/API_SQLuedo/StubbedContextLib/StubbedContext.cs +++ b/API_SQLuedo/StubbedContextLib/StubbedContext.cs @@ -47,7 +47,7 @@ public class StubbedContext : UserDbContext prf: KeyDerivationPrf.HMACSHA256, iterationCount: 100000, numBytesRequested: 256 / 8)), "Victor.GABORIT@etu.uca.fr", true)); - + modelBuilder.Entity().HasData( new InquiryTableEntity(1, "Inquiry1", "Server=localhost;Database=Inquiry1;Trusted_Connection=True;MultipleActiveResultSets=true"), @@ -60,10 +60,28 @@ public class StubbedContext : UserDbContext new SolutionEntity(1, "Maxime", "Sapountzis", "La cuisine", "Le couteau", "Parce que c'est Maxime"), new SolutionEntity(2, "Johnny", "Ratton", "La cuisine", "Le couteau", "Parce que il est ra****"), new SolutionEntity(3, "Erwan", "Menager", "La salle de bain", "L'arachide", "Parce que c'est Erwan")); - + modelBuilder.Entity().HasData( - new InquiryEntity(1, "L'enquête de la carotte", "La description de l'inquiry1", true), - new InquiryEntity(2, "L'enquête sur les orang outan", "The new description", false), - new InquiryEntity(3, "L'enquête sur les parapluies", "Il pleuvait", false)); + new InquiryEntity + { + Id = 1, + Title = "L'enquête de la carotte", + Description = "La description de l'inquiry1", + IsUser = true + }, + new InquiryEntity + { + Id = 2, + Title = "L'enquête sur les orang outan", + Description = "The new description", + IsUser = false + }, + new InquiryEntity + { + Id = 3, + Title = "L'enquête sur les parapluies", + Description = "Il pleuvait", + IsUser = false + }); } } \ No newline at end of file diff --git a/API_SQLuedo/TestConsoleEf/Program.cs b/API_SQLuedo/TestConsoleEf/Program.cs index fb63a8f..7cef835 100644 --- a/API_SQLuedo/TestConsoleEf/Program.cs +++ b/API_SQLuedo/TestConsoleEf/Program.cs @@ -159,10 +159,10 @@ using (var db = new StubbedContext(options)) // Affichage de la solution de l'enquete sur les orang outan Console.WriteLine("\nAffichage de la solution de l'enquete sur les orang outan"); - + var sol = await solutions.FirstOrDefaultAsync(s => s.Owner.Title == "L'enquête sur les orang outan"); Console.WriteLine(sol.MurdererFirstName); - + var inquirySolution = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête sur les orang outan"); var i = inquirySolution.Id; foreach (var pptt in typeof(SolutionEntity).GetProperties() @@ -173,10 +173,12 @@ using (var db = new StubbedContext(options)) // Ajout d'une enquete Console.WriteLine("\nAjout de la nouvelle enquete"); - var newInquiry = new InquiryEntity( - "La nouvelle enquete", - "La description de la nouvelle enquete", - true); + var newInquiry = new InquiryEntity + { + Title = "La nouvelle enquete", + Description = "La description de la nouvelle enquete", + IsUser = true + }; if (!inquiries.Any(inquiry => inquiry.Title == newInquiry.Title)) { inquiries.Add(newInquiry); diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestInquiryEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestInquiryEntity.cs index bee3d00..4a9215f 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestInquiryEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestInquiryEntity.cs @@ -4,48 +4,62 @@ namespace TestEF.EntitiesTests; public class TestInquiryEntity { - private const int _id = 42; - private const string _title = "Title"; - private const string _description = "_description"; - private const bool _isUser = true; + private const int Id = 42; + private const string Title = "Title"; + private const string Description = "_description"; + private const bool IsUser = true; [Fact] public void TestDefaultConstructor() { - InquiryEntity inquiry = new InquiryEntity(); + var inquiry = new InquiryEntity(); Assert.Equal(0, inquiry.Id); Assert.Null(inquiry.Title); Assert.Null(inquiry.Description); Assert.False(inquiry.IsUser); } - + [Fact] public void TestConstructorWithOnlyId() { - InquiryEntity inquiry = new InquiryEntity(_id); - Assert.Equal(_id, inquiry.Id); + var inquiry = new InquiryEntity + { + Id = Id + }; + Assert.Equal(Id, inquiry.Id); Assert.Null(inquiry.Title); Assert.Null(inquiry.Description); Assert.False(inquiry.IsUser); } - + [Fact] public void TestConstructorWithoutId() { - InquiryEntity inquiry = new InquiryEntity(_title,_description,_isUser); + var inquiry = new InquiryEntity + { + Title = Title, + Description = Description, + IsUser = IsUser + }; Assert.Equal(0, inquiry.Id); - Assert.Equal(_title,inquiry.Title); - Assert.Equal(_description,inquiry.Description); + Assert.Equal(Title, inquiry.Title); + Assert.Equal(Description, inquiry.Description); Assert.True(inquiry.IsUser); } - + [Fact] public void TestConstructorWithAllAttributes() { - InquiryEntity inquiry = new InquiryEntity(_id,_title,_description,_isUser); - Assert.Equal(_id, inquiry.Id); - Assert.Equal(_title,inquiry.Title); - Assert.Equal(_description,inquiry.Description); + var inquiry = new InquiryEntity + { + Id = Id, + Title = Title, + Description = Description, + IsUser = IsUser + }; + Assert.Equal(Id, inquiry.Id); + Assert.Equal(Title, inquiry.Title); + Assert.Equal(Description, inquiry.Description); Assert.True(inquiry.IsUser); } } \ No newline at end of file -- 2.36.3 From f4a44ea80f0daf966f7714d30d62cc535b79bf46 Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 10:48:40 +0100 Subject: [PATCH 05/13] =?UTF-8?q?Suppression=20des=20constructeurs=20des?= =?UTF-8?q?=20entit=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EntityFramework/InquiryTableEntity.cs | 21 +------ .../Shared/Mapper/InquiryTableMapper.cs | 22 ++++++-- .../StubbedContextLib/StubbedContext.cs | 27 +++++++-- .../EntitiesTests/TestInquiryTableEntity.cs | 55 ++++++++++++------- 4 files changed, 72 insertions(+), 53 deletions(-) diff --git a/API_SQLuedo/EntityFramework/InquiryTableEntity.cs b/API_SQLuedo/EntityFramework/InquiryTableEntity.cs index c8798b9..c8154e9 100644 --- a/API_SQLuedo/EntityFramework/InquiryTableEntity.cs +++ b/API_SQLuedo/EntityFramework/InquiryTableEntity.cs @@ -11,27 +11,8 @@ public class InquiryTableEntity [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [Required] public int OwnerId { get; set; } + public InquiryEntity Owner { get; set; } public string DatabaseName { get; set; } public string ConnectionInfo { get; set; } - - public InquiryTableEntity() { } - - public InquiryTableEntity(int inquiryId) - { - OwnerId = inquiryId; - } - public InquiryTableEntity(int inquiryId, string databaseName, string connectionInfo) - { - OwnerId = inquiryId; - DatabaseName = databaseName; - ConnectionInfo = connectionInfo; - } - - public InquiryTableEntity(InquiryEntity owner, string databaseName, string connectionInfo) - { - Owner = owner; - DatabaseName = databaseName; - ConnectionInfo = connectionInfo; - } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/Mapper/InquiryTableMapper.cs b/API_SQLuedo/Shared/Mapper/InquiryTableMapper.cs index 3dc11ca..cd303ac 100644 --- a/API_SQLuedo/Shared/Mapper/InquiryTableMapper.cs +++ b/API_SQLuedo/Shared/Mapper/InquiryTableMapper.cs @@ -6,7 +6,7 @@ namespace Shared.Mapper; public static class InquiryTableMapper { - public static InquiryTable FromDTOToModel(this InquiryTableDTO inqTDto) + public static InquiryTable FromDtoToModel(this InquiryTableDTO inqTDto) { return new InquiryTable(inqTDto.OwnerId, inqTDto.ConnectionInfo, inqTDto.DatabaseName); } @@ -16,23 +16,33 @@ public static class InquiryTableMapper return new InquiryTable(inqTEntity.OwnerId, inqTEntity.ConnectionInfo, inqTEntity.DatabaseName); } - public static InquiryTableDTO FromModelToDTO(this InquiryTable inqT) + public static InquiryTableDTO FromModelToDto(this InquiryTable inqT) { return new InquiryTableDTO(inqT.OwnerId, inqT.DatabaseName, inqT.ConnectionInfo); } - public static InquiryTableDTO FromEntityToDTO(this InquiryTableEntity inqTEntity) + public static InquiryTableDTO FromEntityToDto(this InquiryTableEntity inqTEntity) { return new InquiryTableDTO(inqTEntity.OwnerId, inqTEntity.DatabaseName, inqTEntity.ConnectionInfo); } public static InquiryTableEntity FromModelToEntity(this InquiryTable inqT) { - return new InquiryTableEntity(inqT.OwnerId, inqT.DatabaseName, inqT.ConnectionInfo); + return new InquiryTableEntity + { + OwnerId = inqT.OwnerId, + DatabaseName = inqT.DatabaseName, + ConnectionInfo = inqT.ConnectionInfo + }; } - public static InquiryTableEntity FromDTOToEntity(this InquiryTableDTO dto) + public static InquiryTableEntity FromDtoToEntity(this InquiryTableDTO dto) { - return new InquiryTableEntity(dto.OwnerId, dto.DatabaseName, dto.ConnectionInfo); + return new InquiryTableEntity + { + OwnerId = dto.OwnerId, + DatabaseName = dto.DatabaseName, + ConnectionInfo = dto.ConnectionInfo + }; } } \ No newline at end of file diff --git a/API_SQLuedo/StubbedContextLib/StubbedContext.cs b/API_SQLuedo/StubbedContextLib/StubbedContext.cs index 263f6ee..cd17f40 100644 --- a/API_SQLuedo/StubbedContextLib/StubbedContext.cs +++ b/API_SQLuedo/StubbedContextLib/StubbedContext.cs @@ -49,12 +49,27 @@ public class StubbedContext : UserDbContext numBytesRequested: 256 / 8)), "Victor.GABORIT@etu.uca.fr", true)); modelBuilder.Entity().HasData( - new InquiryTableEntity(1, "Inquiry1", - "Server=localhost;Database=Inquiry1;Trusted_Connection=True;MultipleActiveResultSets=true"), - new InquiryTableEntity(2, "Inquiry2", - "Server=localhost;Database=Inquiry2;Trusted_Connection=True;MultipleActiveResultSets=true"), - new InquiryTableEntity(3, "Inquiry3", - "Server=localhost;Database=Inquiry3;Trusted_Connection=True;MultipleActiveResultSets=true")); + new InquiryTableEntity + { + OwnerId = 1, + DatabaseName = "Inquiry1", + ConnectionInfo = + "Server=localhost;Database=Inquiry1;Trusted_Connection=True;MultipleActiveResultSets=true" + }, + new InquiryTableEntity + { + OwnerId = 2, + DatabaseName = "Inquiry2", + ConnectionInfo = + "Server=localhost;Database=Inquiry2;Trusted_Connection=True;MultipleActiveResultSets=true" + }, + new InquiryTableEntity + { + OwnerId = 3, + DatabaseName = "Inquiry3", + ConnectionInfo = + "Server=localhost;Database=Inquiry3;Trusted_Connection=True;MultipleActiveResultSets=true" + }); modelBuilder.Entity().HasData( new SolutionEntity(1, "Maxime", "Sapountzis", "La cuisine", "Le couteau", "Parce que c'est Maxime"), diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestInquiryTableEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestInquiryTableEntity.cs index 7751046..48ff9e2 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestInquiryTableEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestInquiryTableEntity.cs @@ -1,52 +1,65 @@ using Entities; -namespace TestEF; +namespace TestEF.EntitiesTests; public class TestInquiryTableEntity { - private const int _inquiryId = 42; - private static InquiryEntity _inquiry = new InquiryEntity(); - private const string _databaseName = "Database"; - private const string _connectionInfo = "Connection"; + private const int InquiryId = 42; + private static readonly InquiryEntity Inquiry = new InquiryEntity(); + private const string DatabaseName = "Database"; + private const string ConnectionInfo = "Connection"; [Fact] public void TestDefaultConstructor() { InquiryTableEntity tableEntity = new InquiryTableEntity(); - Assert.Equal(0,tableEntity.OwnerId); + Assert.Equal(0, tableEntity.OwnerId); Assert.Null(tableEntity.Owner); Assert.Null(tableEntity.DatabaseName); Assert.Null(tableEntity.ConnectionInfo); } - + [Fact] public void TestConstructorWithOnlyId() { - InquiryTableEntity tableEntity = new InquiryTableEntity(_inquiryId); - Assert.Equal(_inquiryId,tableEntity.OwnerId); + InquiryTableEntity tableEntity = new InquiryTableEntity + { + OwnerId = InquiryId + }; + Assert.Equal(InquiryId, tableEntity.OwnerId); Assert.Null(tableEntity.Owner); Assert.Null(tableEntity.DatabaseName); Assert.Null(tableEntity.ConnectionInfo); } - - + + [Fact] public void TestConstructorWithoutId() { - InquiryTableEntity tableEntity = new InquiryTableEntity(_inquiry,_databaseName,_connectionInfo); - Assert.Equal(0,tableEntity.OwnerId); - Assert.Equal(_inquiry,tableEntity.Owner); - Assert.Equal(_databaseName,tableEntity.DatabaseName); - Assert.Equal(_connectionInfo,tableEntity.ConnectionInfo); + InquiryTableEntity tableEntity = new InquiryTableEntity + { + Owner = Inquiry, + DatabaseName = DatabaseName, + ConnectionInfo = ConnectionInfo + }; + Assert.Equal(0, tableEntity.OwnerId); + Assert.Equal(Inquiry, tableEntity.Owner); + Assert.Equal(DatabaseName, tableEntity.DatabaseName); + Assert.Equal(ConnectionInfo, tableEntity.ConnectionInfo); } - + [Fact] public void TestConstructorWithoutNavigationProperty() { - InquiryTableEntity tableEntity = new InquiryTableEntity(_inquiryId,_databaseName,_connectionInfo); - Assert.Equal(_inquiryId,tableEntity.OwnerId); + InquiryTableEntity tableEntity = new InquiryTableEntity + { + OwnerId = InquiryId, + DatabaseName = DatabaseName, + ConnectionInfo = ConnectionInfo + }; + Assert.Equal(InquiryId, tableEntity.OwnerId); Assert.Null(tableEntity.Owner); - Assert.Equal(_databaseName,tableEntity.DatabaseName); - Assert.Equal(_connectionInfo,tableEntity.ConnectionInfo); + Assert.Equal(DatabaseName, tableEntity.DatabaseName); + Assert.Equal(ConnectionInfo, tableEntity.ConnectionInfo); } } \ No newline at end of file -- 2.36.3 From 99471a3705b036386468113d592b44eaf3a291c2 Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 10:55:05 +0100 Subject: [PATCH 06/13] Suppression des constructeurs pour lessonEntity --- API_SQLuedo/EntityFramework/LessonEntity.cs | 21 +-------- API_SQLuedo/Shared/LessonDataService.cs | 10 ++--- API_SQLuedo/Shared/Mapper/LessonMapper.cs | 24 +++++++--- .../TestEF/EntitiesTests/TestLessonEntity.cs | 44 ++++++++++++------- 4 files changed, 52 insertions(+), 47 deletions(-) diff --git a/API_SQLuedo/EntityFramework/LessonEntity.cs b/API_SQLuedo/EntityFramework/LessonEntity.cs index 902465e..bf6e499 100644 --- a/API_SQLuedo/EntityFramework/LessonEntity.cs +++ b/API_SQLuedo/EntityFramework/LessonEntity.cs @@ -6,25 +6,8 @@ namespace Entities; public class LessonEntity { public int Id { get; set; } - public string? Title { get; set; } - public string? LastPublisher { get; set; } + public string Title { get; set; } + public string LastPublisher { get; set; } public DateOnly? LastEdit { get; set; } public ICollection Content { get; set; } = new List(); - - public LessonEntity() { } - - public LessonEntity(int id, string title, string lastPublisher, DateOnly? lastEdit) - { - Id = id; - Title = title; - LastPublisher = lastPublisher; - LastEdit = lastEdit; - } - - public LessonEntity(string title, string lastPublisher, DateOnly? lastEdit) - { - Title = title; - LastPublisher = lastPublisher; - LastEdit = lastEdit; - } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/LessonDataService.cs b/API_SQLuedo/Shared/LessonDataService.cs index e37b67e..da7713c 100644 --- a/API_SQLuedo/Shared/LessonDataService.cs +++ b/API_SQLuedo/Shared/LessonDataService.cs @@ -35,7 +35,7 @@ public class LessonDataService : ILessonDataService break; } var lessons = query.ToList(); - return lessons.Select(s => s.FromEntityToDTO()); + return lessons.Select(s => s.FromEntityToDto()); } public LessonDTO GetLessonById(int id) @@ -46,7 +46,7 @@ public class LessonDataService : ILessonDataService throw new ArgumentException("Impossible de trouver la leçon", nameof(id)); } - return lessonEntity.FromEntityToDTO(); + return lessonEntity.FromEntityToDto(); } public LessonDTO GetLessonByTitle(string title) @@ -57,7 +57,7 @@ public class LessonDataService : ILessonDataService throw new ArgumentException("Impossible de trouver la leçon", nameof(title)); } - return lessonEntity.FromEntityToDTO(); + return lessonEntity.FromEntityToDto(); } public bool DeleteLesson(int id) @@ -85,7 +85,7 @@ public class LessonDataService : ILessonDataService updatingLesson.LastPublisher = lesson.LastPublisher; updatingLesson.LastEdit = lesson.LastEdit; DbContext.SaveChangesAsync(); - return updatingLesson.FromEntityToDTO(); + return updatingLesson.FromEntityToDto(); } public LessonDTO CreateLesson(string title, string lastPublisher, DateOnly? lastEdit) @@ -96,7 +96,7 @@ public class LessonDataService : ILessonDataService LastPublisher = lastPublisher, LastEdit = lastEdit, }; - DbContext.Lessons.Add(newLessonEntity.FromDTOToEntity()); + DbContext.Lessons.Add(newLessonEntity.FromDtoToEntity()); DbContext.SaveChangesAsync(); return newLessonEntity; } diff --git a/API_SQLuedo/Shared/Mapper/LessonMapper.cs b/API_SQLuedo/Shared/Mapper/LessonMapper.cs index 80fdcb7..68380e1 100644 --- a/API_SQLuedo/Shared/Mapper/LessonMapper.cs +++ b/API_SQLuedo/Shared/Mapper/LessonMapper.cs @@ -6,27 +6,39 @@ namespace Shared.Mapper; public static class LessonMapper { - public static LessonDTO FromModelToDTO(this Lesson model) + public static LessonDTO FromModelToDto(this Lesson model) { return new LessonDTO(model.Id, model.Title, model.LastPublisher, model.LastEdit); } - public static LessonDTO FromEntityToDTO(this LessonEntity model) + public static LessonDTO FromEntityToDto(this LessonEntity model) { return new LessonDTO(model.Id, model.Title, model.LastPublisher, model.LastEdit); } public static LessonEntity FromModelToEntity(this Lesson model) { - return new LessonEntity(model.Id, model.Title, model.LastPublisher, model.LastEdit); + return new LessonEntity + { + Id = model.Id, + Title = model.Title, + LastPublisher = model.LastPublisher, + LastEdit = model.LastEdit + }; } - public static LessonEntity FromDTOToEntity(this LessonDTO dto) + public static LessonEntity FromDtoToEntity(this LessonDTO dto) { - return new LessonEntity(dto.Id, dto.Title, dto.LastPublisher, dto.LastEdit); + return new LessonEntity + { + Id = dto.Id, + Title = dto.Title, + LastPublisher = dto.LastPublisher, + LastEdit = dto.LastEdit + }; } - public static Lesson FromDTOToModel(this LessonDTO dto) + public static Lesson FromDtoToModel(this LessonDTO dto) { return new Lesson(dto.Id, dto.Title, dto.LastPublisher, dto.LastEdit); } diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestLessonEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestLessonEntity.cs index 42a02d1..d77278b 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestLessonEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestLessonEntity.cs @@ -1,14 +1,13 @@ using Entities; -using Microsoft.VisualBasic; -namespace TestEF; +namespace TestEF.EntitiesTests; public class TestLessonEntity { - private const int _id = 42; - private const string _title = "Title"; - private const string _lastPublisher = "Last Publisher"; - private static DateOnly _lastEdit = new DateOnly(); + private const int Id = 42; + private const string Title = "Title"; + private const string LastPublisher = "Last Publisher"; + private static readonly DateOnly LastEdit = new (); [Fact] public void TestDefaultConstructor() @@ -19,24 +18,35 @@ public class TestLessonEntity Assert.Null(lesson.LastPublisher); Assert.Null(lesson.LastEdit); } - + [Fact] public void TestConstructorWithoutId() { - LessonEntity lesson = new LessonEntity(_title,_lastPublisher,_lastEdit); + LessonEntity lesson = new LessonEntity + { + Title = Title, + LastPublisher = LastPublisher, + LastEdit = LastEdit + }; Assert.Equal(0, lesson.Id); - Assert.Equal(_title,lesson.Title); - Assert.Equal(_lastPublisher,lesson.LastPublisher); - Assert.Equal(_lastEdit,lesson.LastEdit); + Assert.Equal(Title, lesson.Title); + Assert.Equal(LastPublisher, lesson.LastPublisher); + Assert.Equal(LastEdit, lesson.LastEdit); } - + [Fact] public void TestConstructorWithAllAttributes() { - LessonEntity lesson = new LessonEntity(_id,_title,_lastPublisher,_lastEdit); - Assert.Equal(_id, lesson.Id); - Assert.Equal(_title,lesson.Title); - Assert.Equal(_lastPublisher,lesson.LastPublisher); - Assert.Equal(_lastEdit,lesson.LastEdit); + LessonEntity lesson = new LessonEntity + { + Id = Id, + Title = Title, + LastPublisher = LastPublisher, + LastEdit = LastEdit + }; + Assert.Equal(Id, lesson.Id); + Assert.Equal(Title, lesson.Title); + Assert.Equal(LastPublisher, lesson.LastPublisher); + Assert.Equal(LastEdit, lesson.LastEdit); } } \ No newline at end of file -- 2.36.3 From c4dd76334dc9cb584a2339598bd3413489fc6afa Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 11:15:09 +0100 Subject: [PATCH 07/13] Suppression des constructeurs pour user et notepad --- API_SQLuedo/EntityFramework/NotepadEntity.cs | 26 +---- API_SQLuedo/EntityFramework/UserEntity.cs | 26 ----- API_SQLuedo/Shared/Mapper/NotepadMapper.cs | 36 ++++-- API_SQLuedo/Shared/Mapper/SuccessMapper.cs | 20 +++- API_SQLuedo/Shared/Mapper/UserMapper.cs | 26 ++++- API_SQLuedo/Shared/SuccessDataService.cs | 10 +- API_SQLuedo/Shared/UserDataService.cs | 10 +- .../StubbedContextLib/StubbedContext.cs | 95 +++++++++++----- API_SQLuedo/TestConsoleEf/Program.cs | 19 +++- .../TestEF/EntitiesTests/TestNotepadEntity.cs | 67 ++++++----- .../TestEF/EntitiesTests/TestUserEntity.cs | 105 ++++++++++-------- 11 files changed, 250 insertions(+), 190 deletions(-) diff --git a/API_SQLuedo/EntityFramework/NotepadEntity.cs b/API_SQLuedo/EntityFramework/NotepadEntity.cs index 0a3f9c9..40c9e62 100644 --- a/API_SQLuedo/EntityFramework/NotepadEntity.cs +++ b/API_SQLuedo/EntityFramework/NotepadEntity.cs @@ -7,32 +7,10 @@ public class NotepadEntity { public int Id { get; set; } - [ForeignKey(nameof(User))] - public int UserId { get; set; } + [ForeignKey(nameof(User))] public int UserId { get; set; } public UserEntity User { get; set; } - [ForeignKey(nameof(Inquiry))] - public int InquiryId { get; set; } + [ForeignKey(nameof(Inquiry))] public int InquiryId { get; set; } public InquiryEntity Inquiry { get; set; } public string Notes { get; set; } - - public NotepadEntity() { } - - public NotepadEntity(int id, int userId, UserEntity user, int inquiryId, InquiryEntity inquiry, string notes) - { - Id = id; - UserId = userId; - User = user; - InquiryId = inquiryId; - Inquiry = inquiry; - Notes = notes; - } - public NotepadEntity(int userId, UserEntity user, int inquiryId, InquiryEntity inquiry, string notes) - { - UserId = userId; - User = user; - InquiryId = inquiryId; - Inquiry = inquiry; - Notes = notes; - } } \ No newline at end of file diff --git a/API_SQLuedo/EntityFramework/UserEntity.cs b/API_SQLuedo/EntityFramework/UserEntity.cs index 2d22110..aa2527f 100644 --- a/API_SQLuedo/EntityFramework/UserEntity.cs +++ b/API_SQLuedo/EntityFramework/UserEntity.cs @@ -10,30 +10,4 @@ public class UserEntity public string Password { get; set; } public string Email { get; set; } public bool IsAdmin { get; set; } - - public UserEntity() - { - } - - public UserEntity(int id) - { - Id = id; - } - - public UserEntity(int id, string username, string password, string email, bool isAdmin) - { - Id = id; - Username = username; - Password = password; - Email = email; - IsAdmin = isAdmin; - } - - public UserEntity(string username, string password, string email, bool isAdmin) - { - Username = username; - Password = password; - Email = email; - IsAdmin = isAdmin; - } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/Mapper/NotepadMapper.cs b/API_SQLuedo/Shared/Mapper/NotepadMapper.cs index 3862d02..4b62499 100644 --- a/API_SQLuedo/Shared/Mapper/NotepadMapper.cs +++ b/API_SQLuedo/Shared/Mapper/NotepadMapper.cs @@ -6,7 +6,7 @@ namespace Shared.Mapper; public static class NotepadMapper { - public static Notepad FromDTOToModel(this NotepadDTO dto) + public static Notepad FromDtoToModel(this NotepadDTO dto) { return new Notepad(dto.Id, dto.UserId, dto.InquiryId, dto.Notes); } @@ -16,33 +16,49 @@ public static class NotepadMapper return new Notepad(ent.Id, ent.UserId, ent.InquiryId, ent.Notes); } - public static NotepadDTO FromModelToDTO(this Notepad not) + public static NotepadDTO FromModelToDto(this Notepad not) { return new NotepadDTO(not.Id, not.UserId, not.InquiryId, not.Notes); } - public static NotepadDTO FromEntityToDTO(this NotepadEntity ent) + public static NotepadDTO FromEntityToDto(this NotepadEntity ent) { return new NotepadDTO(ent.Id, ent.UserId, ent.InquiryId, ent.Notes); } - public static NotepadEntity FromDTOToEntity(this NotepadDTO dto) + public static NotepadEntity FromDtoToEntity(this NotepadDTO dto) { - return new NotepadEntity(dto.Id, new UserEntity(dto.UserId), dto.UserId, - new InquiryEntity + return new NotepadEntity + { + Id = dto.Id, + User = new UserEntity + { + Id = dto.UserId + }, + UserId = dto.UserId, + Inquiry = new InquiryEntity { Id = dto.InquiryId }, - dto.Notes); + Notes = dto.Notes + }; } public static NotepadEntity FromModelToEntity(this Notepad not) { - return new NotepadEntity(not.Id, new UserEntity(not.UserId), not.UserId, - new InquiryEntity + return new NotepadEntity + { + Id = not.Id, + User = new UserEntity + { + Id = not.UserId + }, + UserId = not.UserId, + Inquiry = new InquiryEntity { Id = not.InquiryId }, - not.Notes); + Notes = not.Notes + }; } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/Mapper/SuccessMapper.cs b/API_SQLuedo/Shared/Mapper/SuccessMapper.cs index 3912f13..a51ac67 100644 --- a/API_SQLuedo/Shared/Mapper/SuccessMapper.cs +++ b/API_SQLuedo/Shared/Mapper/SuccessMapper.cs @@ -6,7 +6,7 @@ namespace Shared.Mapper; public static class SuccessMapper { - public static Success FromDTOToModel(this SuccessDTO dto) + public static Success FromDtoToModel(this SuccessDTO dto) { return new Success(dto.UserId, dto.InquiryId, dto.IsFinished); } @@ -16,19 +16,23 @@ public static class SuccessMapper return new Success(ent.UserId, ent.InquiryId, ent.IsFinished); } - public static SuccessDTO FromModelToDTO(this Success suc) + public static SuccessDTO FromModelToDto(this Success suc) { return new SuccessDTO(suc.UserId, suc.InquiryId, suc.IsFinished); } - public static SuccessDTO FromEntityToDTO(this SuccessEntity ent) + public static SuccessDTO FromEntityToDto(this SuccessEntity ent) { return new SuccessDTO(ent.UserId, ent.InquiryId, ent.IsFinished); } - public static SuccessEntity FromDTOToEntity(this SuccessDTO dto) + public static SuccessEntity FromDtoToEntity(this SuccessDTO dto) { - return new SuccessEntity(dto.UserId, new UserEntity(dto.UserId), dto.InquiryId, + return new SuccessEntity(dto.UserId, new UserEntity + { + Id = dto.UserId + }, + dto.InquiryId, new InquiryEntity { Id = dto.InquiryId @@ -38,7 +42,11 @@ public static class SuccessMapper public static SuccessEntity FromModelToEntity(this Success suc) { - return new SuccessEntity(suc.UserId, new UserEntity(suc.UserId), suc.InquiryId, + return new SuccessEntity(suc.UserId, new UserEntity + { + Id = suc.UserId + }, + suc.InquiryId, new InquiryEntity { Id = suc.InquiryId diff --git a/API_SQLuedo/Shared/Mapper/UserMapper.cs b/API_SQLuedo/Shared/Mapper/UserMapper.cs index f915699..85aeecd 100644 --- a/API_SQLuedo/Shared/Mapper/UserMapper.cs +++ b/API_SQLuedo/Shared/Mapper/UserMapper.cs @@ -6,14 +6,21 @@ namespace Shared.Mapper; public static class UserMapper { - public static User FromDTOToModel(this UserDTO dto) + public static User FromDtoToModel(this UserDTO dto) { return new User(dto.Id, dto.Username, dto.Password, dto.Email, dto.IsAdmin); } - public static UserEntity FromDTOToEntity(this UserDTO dto) + public static UserEntity FromDtoToEntity(this UserDTO dto) { - return new UserEntity(dto.Id, dto.Username, dto.Password, dto.Email, dto.IsAdmin); + return new UserEntity + { + Id = dto.Id, + Username = dto.Username, + Password = dto.Password, + Email = dto.Email, + IsAdmin = dto.IsAdmin + }; } public static User FromEntityToModel(this UserEntity entity) @@ -21,18 +28,25 @@ public static class UserMapper return new User(entity.Id, entity.Username, entity.Password, entity.Email, entity.IsAdmin); } - public static UserDTO FromEntityToDTO(this UserEntity entity) + public static UserDTO FromEntityToDto(this UserEntity entity) { return new UserDTO(entity.Id, entity.Username, entity.Password, entity.Email, entity.IsAdmin); } - public static UserDTO FromModelToDTO(this User user) + public static UserDTO FromModelToDto(this User user) { return new UserDTO(user.Id, user.Username, user.Password, user.Email, user.IsAdmin); } public static UserEntity FromModelToEntity(this User user) { - return new UserEntity(user.Id, user.Username, user.Password, user.Email, user.IsAdmin); + return new UserEntity + { + Id = user.Id, + Username = user.Username, + Password = user.Password, + Email = user.Email, + IsAdmin = user.IsAdmin + }; } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/SuccessDataService.cs b/API_SQLuedo/Shared/SuccessDataService.cs index f2f7b88..472a9ff 100644 --- a/API_SQLuedo/Shared/SuccessDataService.cs +++ b/API_SQLuedo/Shared/SuccessDataService.cs @@ -35,7 +35,7 @@ public class SuccessDataService : ISuccessDataService break; } var successes = query.ToList(); - return successes.Select(s => s.FromEntityToDTO()); + return successes.Select(s => s.FromEntityToDto()); } public SuccessDTO GetSuccessByUserId(int id) @@ -46,7 +46,7 @@ public class SuccessDataService : ISuccessDataService throw new ArgumentException("Impossible de trouver le succès", nameof(id)); } - return userEntity.FromEntityToDTO(); + return userEntity.FromEntityToDto(); } public SuccessDTO GetSuccessByInquiryId(int id) @@ -57,7 +57,7 @@ public class SuccessDataService : ISuccessDataService throw new ArgumentException("Impossible de trouver le succès", nameof(id)); } - return userEntity.FromEntityToDTO(); + return userEntity.FromEntityToDto(); } public bool DeleteSuccess(int id) @@ -85,7 +85,7 @@ public class SuccessDataService : ISuccessDataService updatingSuccess.InquiryId = success.InquiryId; updatingSuccess.IsFinished = success.IsFinished; DbContext.SaveChangesAsync(); - return updatingSuccess.FromEntityToDTO(); + return updatingSuccess.FromEntityToDto(); } public SuccessDTO CreateSuccess(int userId, int inquiryId, bool isFinished) @@ -96,7 +96,7 @@ public class SuccessDataService : ISuccessDataService InquiryId = inquiryId, IsFinished = isFinished, }; - DbContext.Successes.Add(newSuccessEntity.FromDTOToEntity()); + DbContext.Successes.Add(newSuccessEntity.FromDtoToEntity()); DbContext.SaveChangesAsync(); return newSuccessEntity; } diff --git a/API_SQLuedo/Shared/UserDataService.cs b/API_SQLuedo/Shared/UserDataService.cs index a90b809..4679d11 100644 --- a/API_SQLuedo/Shared/UserDataService.cs +++ b/API_SQLuedo/Shared/UserDataService.cs @@ -30,7 +30,7 @@ namespace Shared throw new ArgumentException("Impossible de trouver l'utilisateur", nameof(id)); } - return userEntity.FromEntityToDTO(); + return userEntity.FromEntityToDto(); } @@ -42,7 +42,7 @@ namespace Shared throw new ArgumentException("Impossible de trouver l'utilisateur", nameof(username)); } - return userEntity.FromEntityToDTO(); + return userEntity.FromEntityToDto(); } @@ -69,7 +69,7 @@ namespace Shared break; } var users = query.ToList(); - return users.Select(s => s.FromEntityToDTO()); + return users.Select(s => s.FromEntityToDto()); } public bool DeleteUser(int id) @@ -99,7 +99,7 @@ namespace Shared updatingUser.Email = user.Email; updatingUser.IsAdmin = user.IsAdmin; DbContext.SaveChangesAsync(); - return updatingUser.FromEntityToDTO(); + return updatingUser.FromEntityToDto(); } @@ -112,7 +112,7 @@ namespace Shared Email = email, IsAdmin = isAdmin }; - DbContext.Users.Add(newUserEntity.FromDTOToEntity()); + DbContext.Users.Add(newUserEntity.FromDtoToEntity()); DbContext.SaveChangesAsync(); return newUserEntity; diff --git a/API_SQLuedo/StubbedContextLib/StubbedContext.cs b/API_SQLuedo/StubbedContextLib/StubbedContext.cs index cd17f40..4914d36 100644 --- a/API_SQLuedo/StubbedContextLib/StubbedContext.cs +++ b/API_SQLuedo/StubbedContextLib/StubbedContext.cs @@ -17,36 +17,71 @@ public class StubbedContext : UserDbContext { base.OnModelCreating(modelBuilder); modelBuilder.Entity().HasData( - new UserEntity(1, "johnny", Convert.ToBase64String(KeyDerivation.Pbkdf2( - password: "motdepasse", - salt: RandomNumberGenerator.GetBytes(128 / 8), - prf: KeyDerivationPrf.HMACSHA256, - iterationCount: 100000, - numBytesRequested: 256 / 8)), "Johnny.RATTON@etu.uca.fr", true), - new UserEntity(2, "maxime", Convert.ToBase64String(KeyDerivation.Pbkdf2( - password: "motdepasse", - salt: RandomNumberGenerator.GetBytes(128 / 8), - prf: KeyDerivationPrf.HMACSHA256, - iterationCount: 100000, - numBytesRequested: 256 / 8)), "Maxime.SAPOUNTZIS@etu.uca.fr", true), - new UserEntity(3, "clement", Convert.ToBase64String(KeyDerivation.Pbkdf2( - password: "motdepasse", - salt: RandomNumberGenerator.GetBytes(128 / 8), - prf: KeyDerivationPrf.HMACSHA256, - iterationCount: 100000, - numBytesRequested: 256 / 8)), "Clement.CHIEU@etu.uca.fr", true), - new UserEntity(4, "erwan", Convert.ToBase64String(KeyDerivation.Pbkdf2( - password: "motdepasse", - salt: RandomNumberGenerator.GetBytes(128 / 8), - prf: KeyDerivationPrf.HMACSHA256, - iterationCount: 100000, - numBytesRequested: 256 / 8)), "Erwan.MENAGER@etu.uca.fr", true), - new UserEntity(5, "victor", Convert.ToBase64String(KeyDerivation.Pbkdf2( - password: "motdepasse", - salt: RandomNumberGenerator.GetBytes(128 / 8), - prf: KeyDerivationPrf.HMACSHA256, - iterationCount: 100000, - numBytesRequested: 256 / 8)), "Victor.GABORIT@etu.uca.fr", true)); + new UserEntity + { + Id = 1, + Username = "johnny", + Password = Convert.ToBase64String(KeyDerivation.Pbkdf2( + password: "motdepasse", + salt: RandomNumberGenerator.GetBytes(128 / 8), + prf: KeyDerivationPrf.HMACSHA256, + iterationCount: 100000, + numBytesRequested: 256 / 8)), + Email = "Johnny.RATTON@etu.uca.fr", + IsAdmin = true + }, + new UserEntity + { + Id = 2, + Username = "maxime", + Password = Convert.ToBase64String(KeyDerivation.Pbkdf2( + password: "motdepasse", + salt: RandomNumberGenerator.GetBytes(128 / 8), + prf: KeyDerivationPrf.HMACSHA256, + iterationCount: 100000, + numBytesRequested: 256 / 8)), + Email = "Maxime.SAPOUNTZIS@etu.uca.fr", + IsAdmin = true + }, + new UserEntity + { + Id = 3, + Username = "clement", + Password = Convert.ToBase64String(KeyDerivation.Pbkdf2( + password: "motdepasse", + salt: RandomNumberGenerator.GetBytes(128 / 8), + prf: KeyDerivationPrf.HMACSHA256, + iterationCount: 100000, + numBytesRequested: 256 / 8)), + Email = "Clement.CHIEU@etu.uca.fr", + IsAdmin = true + }, + new UserEntity + { + Id = 4, + Username = "erwan", + Password = Convert.ToBase64String(KeyDerivation.Pbkdf2( + password: "motdepasse", + salt: RandomNumberGenerator.GetBytes(128 / 8), + prf: KeyDerivationPrf.HMACSHA256, + iterationCount: 100000, + numBytesRequested: 256 / 8)), + Email = "Erwan.MENAGER@etu.uca.fr", + IsAdmin = true + }, + new UserEntity + { + Id = 5, + Username = "victor", + Password = Convert.ToBase64String(KeyDerivation.Pbkdf2( + password: "motdepasse", + salt: RandomNumberGenerator.GetBytes(128 / 8), + prf: KeyDerivationPrf.HMACSHA256, + iterationCount: 100000, + numBytesRequested: 256 / 8)), + Email = "Victor.GABORIT@etu.uca.fr", + IsAdmin = true + }); modelBuilder.Entity().HasData( new InquiryTableEntity diff --git a/API_SQLuedo/TestConsoleEf/Program.cs b/API_SQLuedo/TestConsoleEf/Program.cs index 7cef835..c7bc583 100644 --- a/API_SQLuedo/TestConsoleEf/Program.cs +++ b/API_SQLuedo/TestConsoleEf/Program.cs @@ -46,12 +46,19 @@ using (var db = new StubbedContext(options)) // Ajout d'un utilisateur Console.WriteLine("\nAjout du nouvel utilisateur"); - var newUser = new UserEntity("le nouveau du groupe", Convert.ToBase64String(KeyDerivation.Pbkdf2( - password: "motdepasse", - salt: RandomNumberGenerator.GetBytes(128 / 8), - prf: KeyDerivationPrf.HMACSHA256, - iterationCount: 100000, - numBytesRequested: 256 / 8)), "Efff.fffff@etu.uca.fr", true); + var newUser = new UserEntity + { + Username = "le nouveau du groupe", + Password = Convert.ToBase64String(KeyDerivation.Pbkdf2( + password: "motdepasse", + salt: RandomNumberGenerator.GetBytes(128 / 8), + prf: KeyDerivationPrf.HMACSHA256, + iterationCount: 100000, + numBytesRequested: 256 / 8)), + Email = "Efff.fffff@etu.uca.fr", + IsAdmin = true + } + ; if (!users.Any(u => u.Username == newUser.Username)) { users.Add(newUser); diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestNotepadEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestNotepadEntity.cs index 4d3ba35..0a9796b 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestNotepadEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestNotepadEntity.cs @@ -1,49 +1,64 @@ using Entities; -namespace TestEF; +namespace TestEF.EntitiesTests; public class TestNotepadEntity { - private const int _id = 42; - private const int _userId = 42; - private static UserEntity _userEntity = new UserEntity(); - private const int _inquiryId = 42; - private static InquiryEntity _inquiryEntity = new InquiryEntity(); - private const string _notes = "This is some notes example"; + private const int Id = 42; + private const int UserId = 42; + private static readonly UserEntity UserEntity = new(); + private const int InquiryId = 42; + private static readonly InquiryEntity InquiryEntity = new(); + private const string Notes = "This is some notes example"; [Fact] public void TestDefaultConstructor() { NotepadEntity notepad = new NotepadEntity(); - Assert.Equal(0,notepad.Id); - Assert.Equal(0,notepad.UserId); + Assert.Equal(0, notepad.Id); + Assert.Equal(0, notepad.UserId); Assert.Null(notepad.User); - Assert.Equal(0,notepad.InquiryId); + Assert.Equal(0, notepad.InquiryId); Assert.Null(notepad.Inquiry); Assert.Null(notepad.Notes); } - + [Fact] public void TestConstructorWithoutId() { - NotepadEntity notepad = new NotepadEntity(_userId,_userEntity,_inquiryId,_inquiryEntity,_notes); - Assert.Equal(0,notepad.Id); - Assert.Equal(_userId,notepad.UserId); - Assert.Equal(_userEntity,notepad.User); - Assert.Equal(_inquiryId,notepad.InquiryId); - Assert.Equal(_inquiryEntity,notepad.Inquiry); - Assert.Equal(_notes,notepad.Notes); + NotepadEntity notepad = new NotepadEntity + { + UserId = UserId, + User = UserEntity, + InquiryId = InquiryId, + Inquiry = InquiryEntity, + Notes = Notes + }; + Assert.Equal(0, notepad.Id); + Assert.Equal(UserId, notepad.UserId); + Assert.Equal(UserEntity, notepad.User); + Assert.Equal(InquiryId, notepad.InquiryId); + Assert.Equal(InquiryEntity, notepad.Inquiry); + Assert.Equal(Notes, notepad.Notes); } - + [Fact] public void TestConstructorWithAllAttributes() { - NotepadEntity notepad = new NotepadEntity(_id,_userId,_userEntity,_inquiryId,_inquiryEntity,_notes); - Assert.Equal(_id,notepad.Id); - Assert.Equal(_userId,notepad.UserId); - Assert.Equal(_userEntity,notepad.User); - Assert.Equal(_inquiryId,notepad.InquiryId); - Assert.Equal(_inquiryEntity,notepad.Inquiry); - Assert.Equal(_notes,notepad.Notes); + NotepadEntity notepad = new NotepadEntity + { + Id = Id, + UserId = UserId, + User = UserEntity, + InquiryId = InquiryId, + Inquiry = InquiryEntity, + Notes = Notes + }; + Assert.Equal(Id, notepad.Id); + Assert.Equal(UserId, notepad.UserId); + Assert.Equal(UserEntity, notepad.User); + Assert.Equal(InquiryId, notepad.InquiryId); + Assert.Equal(InquiryEntity, notepad.Inquiry); + Assert.Equal(Notes, notepad.Notes); } } \ No newline at end of file diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestUserEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestUserEntity.cs index 8f99022..2b52f27 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestUserEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestUserEntity.cs @@ -1,56 +1,69 @@ using Entities; -namespace TestEF +namespace TestEF.EntitiesTests; + +public class TestUserEntity { - public class TestUserEntity + private const string Username = "username"; + private const string Email = "example@email.com"; + private const string Password = "password"; + private const bool IsAdmin = true; + private const int Id = 42; + + [Fact] + public void TestDefaultConstructor() { - private const string _username = "username"; - private const string _email = "example@email.com"; - private const string _password = "password"; - private const bool _isAdmin = true; - private const int _id = 42; - [Fact] - public void TestDefaultConstructor() - { - UserEntity user = new UserEntity(); - Assert.Equal(0,user.Id); - Assert.Null(user.Username); - Assert.Null(user.Email); - Assert.Null(user.Password); - Assert.False(user.IsAdmin); - } + UserEntity user = new UserEntity(); + Assert.Equal(0, user.Id); + Assert.Null(user.Username); + Assert.Null(user.Email); + Assert.Null(user.Password); + Assert.False(user.IsAdmin); + } - [Fact] - public void TestConstructorWithOnlyId() - { - UserEntity user = new UserEntity(_id); - Assert.Equal(_id,user.Id); - Assert.Null(user.Username); - Assert.Null(user.Email); - Assert.Null(user.Password); - Assert.False(user.IsAdmin); - } + [Fact] + public void TestConstructorWithOnlyId() + { + UserEntity user = new UserEntity{ Id = Id}; + Assert.Equal(Id, user.Id); + Assert.Null(user.Username); + Assert.Null(user.Email); + Assert.Null(user.Password); + Assert.False(user.IsAdmin); + } - [Fact] - public void TestConstructorWithoutId() + [Fact] + public void TestConstructorWithoutId() + { + UserEntity user = new UserEntity { - UserEntity user = new UserEntity(_username, _password, _email, _isAdmin); - Assert.Equal(0,user.Id); - Assert.Equal(_username, user.Username); - Assert.Equal(_email, user.Email); - Assert.Equal(_password, user.Password); - Assert.True(user.IsAdmin); - } - - [Fact] - public void TestConstructorWithoutAllAttributes() + Username = Username, + Password = Password, + Email = Email, + IsAdmin = IsAdmin + }; + Assert.Equal(0, user.Id); + Assert.Equal(Username, user.Username); + Assert.Equal(Email, user.Email); + Assert.Equal(Password, user.Password); + Assert.True(user.IsAdmin); + } + + [Fact] + public void TestConstructorWithoutAllAttributes() + { + UserEntity user = new UserEntity { - UserEntity user = new UserEntity(_id, _username, _password, _email, _isAdmin); - Assert.Equal(_id,user.Id); - Assert.Equal(_username, user.Username); - Assert.Equal(_email, user.Email); - Assert.Equal(_password, user.Password); - Assert.True(user.IsAdmin); - } + Id = Id, + Username = Username, + Password = Password, + Email = Email, + IsAdmin = IsAdmin + }; + Assert.Equal(Id, user.Id); + Assert.Equal(Username, user.Username); + Assert.Equal(Email, user.Email); + Assert.Equal(Password, user.Password); + Assert.True(user.IsAdmin); } } \ No newline at end of file -- 2.36.3 From 9202afb4e604c400b74f3d24a279ddbd52b34485 Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 11:23:27 +0100 Subject: [PATCH 08/13] Suppression des constructeurs de SolutionEntity --- API_SQLuedo/EntityFramework/SolutionEntity.cs | 38 ++------- API_SQLuedo/Shared/Mapper/SolutionMapper.cs | 34 +++++--- .../StubbedContextLib/StubbedContext.cs | 30 ++++++- .../EntitiesTests/TestSolutionEntity.cs | 85 ++++++++++++------- 4 files changed, 112 insertions(+), 75 deletions(-) diff --git a/API_SQLuedo/EntityFramework/SolutionEntity.cs b/API_SQLuedo/EntityFramework/SolutionEntity.cs index 8b57c1a..d1a068d 100644 --- a/API_SQLuedo/EntityFramework/SolutionEntity.cs +++ b/API_SQLuedo/EntityFramework/SolutionEntity.cs @@ -12,42 +12,14 @@ public class SolutionEntity [Required] public int OwnerId { get; set; } public InquiryEntity? Owner { get; set; } - public string? MurdererFirstName { get; set; } - public string? MurdererLastName { get; set; } - public string? MurderPlace { get; set; } - public string? MurderWeapon { get; set; } - public string? Explaination { get; set; } + public string MurdererFirstName { get; set; } + public string MurdererLastName { get; set; } + public string MurderPlace { get; set; } + public string MurderWeapon { get; set; } + public string Explaination { get; set; } public SolutionEntity() { } public SolutionEntity(int ownerId) { OwnerId = ownerId; } - public SolutionEntity(int ownerId, InquiryEntity? owner, string murdererFirstName, string murdererLastName, string murderPlace, string murderWeapon, string explaination) - { - OwnerId = ownerId; - Owner = owner; - MurdererFirstName = murdererFirstName; - MurdererLastName = murdererLastName; - MurderPlace = murderPlace; - MurderWeapon = murderWeapon; - Explaination = explaination; - } - public SolutionEntity(InquiryEntity? owner, string murdererFirstName, string murdererLastName, string murderPlace, string murderWeapon, string explaination) - { - Owner = owner; - MurdererFirstName = murdererFirstName; - MurdererLastName = murdererLastName; - MurderPlace = murderPlace; - MurderWeapon = murderWeapon; - Explaination = explaination; - } - public SolutionEntity(int ownerId, string murdererFirstName, string murdererLastName, string murderPlace, string murderWeapon, string explanation) - { - OwnerId = ownerId; - MurdererFirstName = murdererFirstName; - MurdererLastName = murdererLastName; - MurderPlace = murderPlace; - MurderWeapon = murderWeapon; - Explaination = explanation; - } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/Mapper/SolutionMapper.cs b/API_SQLuedo/Shared/Mapper/SolutionMapper.cs index deb56e5..eda3fac 100644 --- a/API_SQLuedo/Shared/Mapper/SolutionMapper.cs +++ b/API_SQLuedo/Shared/Mapper/SolutionMapper.cs @@ -6,7 +6,7 @@ namespace Shared.Mapper; public static class SolutionMapper { - public static Solution FromDTOToModel(this SolutionDTO dto) + public static Solution FromDtoToModel(this SolutionDTO dto) { return new Solution(dto.OwnerId, dto.MurdererFirstName, dto.MurdererLastName, dto.MurderPlace, dto.MurderWeapon, dto.Explanation); @@ -18,13 +18,13 @@ public static class SolutionMapper entity.MurderWeapon, entity.Explaination); } - public static SolutionDTO FromModelToDTO(this Solution model) + public static SolutionDTO FromModelToDto(this Solution model) { return new SolutionDTO(model.OwnerId, model.MurdererFirstName, model.MurdererLastName, model.MurderPlace, model.MurderWeapon, model.Explanation); } - public static SolutionDTO FromEntityToDTO(this SolutionEntity entity) + public static SolutionDTO FromEntityToDto(this SolutionEntity entity) { return new SolutionDTO(entity.OwnerId, entity.MurdererFirstName, entity.MurdererLastName, entity.MurderPlace, entity.MurderWeapon, entity.Explaination); @@ -32,21 +32,35 @@ public static class SolutionMapper public static SolutionEntity FromModelToEntity(this Solution model) { - return new SolutionEntity(model.OwnerId, new InquiryEntity + return new SolutionEntity + { + OwnerId = model.OwnerId, + Owner = new InquiryEntity { Id = model.OwnerId }, - model.MurdererFirstName, - model.MurdererLastName, model.MurderPlace, model.MurderWeapon, model.Explanation); + MurdererFirstName = model.MurdererFirstName, + MurdererLastName = model.MurdererLastName, + MurderPlace = model.MurderPlace, + MurderWeapon = model.MurderWeapon, + Explaination = model.Explanation + }; } - public static SolutionEntity FromDTOToEntity(this SolutionDTO dto) + public static SolutionEntity FromDtoToEntity(this SolutionDTO dto) { - return new SolutionEntity(dto.OwnerId, new InquiryEntity + return new SolutionEntity + { + OwnerId = dto.OwnerId, + Owner = new InquiryEntity { Id = dto.OwnerId }, - dto.MurdererFirstName, - dto.MurdererLastName, dto.MurderPlace, dto.MurderWeapon, dto.Explanation); + MurdererFirstName = dto.MurdererFirstName, + MurdererLastName = dto.MurdererLastName, + MurderPlace = dto.MurderPlace, + MurderWeapon = dto.MurderWeapon, + Explaination = dto.Explanation + }; } } \ No newline at end of file diff --git a/API_SQLuedo/StubbedContextLib/StubbedContext.cs b/API_SQLuedo/StubbedContextLib/StubbedContext.cs index 4914d36..d138bf0 100644 --- a/API_SQLuedo/StubbedContextLib/StubbedContext.cs +++ b/API_SQLuedo/StubbedContextLib/StubbedContext.cs @@ -107,9 +107,33 @@ public class StubbedContext : UserDbContext }); modelBuilder.Entity().HasData( - new SolutionEntity(1, "Maxime", "Sapountzis", "La cuisine", "Le couteau", "Parce que c'est Maxime"), - new SolutionEntity(2, "Johnny", "Ratton", "La cuisine", "Le couteau", "Parce que il est ra****"), - new SolutionEntity(3, "Erwan", "Menager", "La salle de bain", "L'arachide", "Parce que c'est Erwan")); + new SolutionEntity + { + OwnerId = 1, + MurdererFirstName = "Maxime", + MurdererLastName = "Sapountzis", + MurderPlace = "La cuisine", + MurderWeapon = "Le couteau", + Explaination = "Parce que c'est Maxime" + }, + new SolutionEntity + { + OwnerId = 2, + MurdererFirstName = "Johnny", + MurdererLastName = "Ratton", + MurderPlace = "La cuisine", + MurderWeapon = "Le couteau", + Explaination = "Parce que il est fou" + }, + new SolutionEntity + { + OwnerId = 3, + MurdererFirstName = "Erwan", + MurdererLastName = "Menager", + MurderPlace = "La salle de bain", + MurderWeapon = "L'arachide", + Explaination = "Parce que c'est Erwan" + }); modelBuilder.Entity().HasData( new InquiryEntity diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestSolutionEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestSolutionEntity.cs index 8808fd1..6fb2865 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestSolutionEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestSolutionEntity.cs @@ -1,16 +1,16 @@ using Entities; -namespace TestEF; +namespace TestEF.EntitiesTests; public class TestSolutionEntity { - private const string _murdererFirstName = "John"; - private const string _murdererLastName = "Doe"; - private const string _murderPlace = "WhiteHouse"; - private const string _murderWeapon = "Nuclear Bomb"; - private const string _explaination = "This is an explaination"; - private const int _inquiryId = 42; - private static InquiryEntity _inquiry = new InquiryEntity(); + private const string MurdererFirstName = "John"; + private const string MurdererLastName = "Doe"; + private const string MurderPlace = "WhiteHouse"; + private const string MurderWeapon = "Nuclear Bomb"; + private const string Explaination = "This is an explaination"; + private const int InquiryId = 42; + private static readonly InquiryEntity Inquiry = new(); [Fact] public void TestDefaultConstructor() @@ -28,8 +28,11 @@ public class TestSolutionEntity [Fact] public void TestConstructorWithOnlyId() { - SolutionEntity solution = new SolutionEntity(_inquiryId); - Assert.Equal(_inquiryId, solution.OwnerId); + SolutionEntity solution = new SolutionEntity + { + OwnerId = InquiryId + }; + Assert.Equal(InquiryId, solution.OwnerId); Assert.Null(solution.Owner); Assert.Null(solution.MurdererFirstName); Assert.Null(solution.MurdererLastName); @@ -41,29 +44,46 @@ public class TestSolutionEntity [Fact] public void TestConstructorWithoutOwnerId() { - SolutionEntity solution = new SolutionEntity(_inquiry, _murdererFirstName, _murdererLastName, _murderPlace, - _murderWeapon, _explaination); + SolutionEntity solution = new SolutionEntity + { + Owner = Inquiry, + MurdererFirstName = MurdererFirstName, + MurdererLastName = MurdererLastName, + MurderPlace = MurderPlace, + MurderWeapon = MurderWeapon, + Explaination = 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); + 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); - Assert.Equal(_explaination, solution.Explaination); + SolutionEntity solution = new SolutionEntity + { + OwnerId = InquiryId, + Owner = Inquiry, + MurdererFirstName = MurdererFirstName, + MurdererLastName = MurdererLastName, + MurderPlace = MurderPlace, + MurderWeapon = MurderWeapon, + Explaination = 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] @@ -78,8 +98,15 @@ public class TestSolutionEntity const string explanation = "This is an explanation"; // Act - var solutionEntity = new SolutionEntity(ownerId, murdererFirstName, murdererLastName, murderPlace, murderWeapon, - explanation); + var solutionEntity = new SolutionEntity + { + OwnerId = ownerId, + MurdererFirstName = murdererFirstName, + MurdererLastName = murdererLastName, + MurderPlace = murderPlace, + MurderWeapon = murderWeapon, + Explaination = explanation + }; // Assert Assert.Equal(ownerId, solutionEntity.OwnerId); -- 2.36.3 From f2ed9a8dbd8cc6b712f5acd32b09170845b49f23 Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 11:27:23 +0100 Subject: [PATCH 09/13] Suppression des constructeurs de successEntity --- API_SQLuedo/EntityFramework/SuccessEntity.cs | 14 ----- API_SQLuedo/Shared/Mapper/SuccessMapper.cs | 28 ++++++---- .../TestEF/EntitiesTests/TestSuccessEntity.cs | 53 ++++++++++++------- 3 files changed, 53 insertions(+), 42 deletions(-) diff --git a/API_SQLuedo/EntityFramework/SuccessEntity.cs b/API_SQLuedo/EntityFramework/SuccessEntity.cs index 10f21a9..d053a92 100644 --- a/API_SQLuedo/EntityFramework/SuccessEntity.cs +++ b/API_SQLuedo/EntityFramework/SuccessEntity.cs @@ -24,18 +24,4 @@ public class SuccessEntity Inquiry = inquiry; IsFinished = isFinished; } - - public SuccessEntity(int userId, int inquiryId, bool isFinished) - { - UserId = userId; - InquiryId = inquiryId; - IsFinished = isFinished; - } - - public SuccessEntity(UserEntity user, InquiryEntity inquiry, bool isFinished) - { - User = user; - Inquiry = inquiry; - IsFinished = isFinished; - } } \ No newline at end of file diff --git a/API_SQLuedo/Shared/Mapper/SuccessMapper.cs b/API_SQLuedo/Shared/Mapper/SuccessMapper.cs index a51ac67..e96291a 100644 --- a/API_SQLuedo/Shared/Mapper/SuccessMapper.cs +++ b/API_SQLuedo/Shared/Mapper/SuccessMapper.cs @@ -28,29 +28,37 @@ public static class SuccessMapper public static SuccessEntity FromDtoToEntity(this SuccessDTO dto) { - return new SuccessEntity(dto.UserId, new UserEntity + return new SuccessEntity + { + UserId = dto.UserId, + User = new UserEntity { Id = dto.UserId - }, - dto.InquiryId, - new InquiryEntity + }, + InquiryId = dto.InquiryId, + Inquiry = new InquiryEntity { Id = dto.InquiryId }, - dto.IsFinished); + IsFinished = dto.IsFinished + }; } public static SuccessEntity FromModelToEntity(this Success suc) { - return new SuccessEntity(suc.UserId, new UserEntity + return new SuccessEntity + { + UserId = suc.UserId, + User = new UserEntity { Id = suc.UserId - }, - suc.InquiryId, - new InquiryEntity + }, + InquiryId = suc.InquiryId, + Inquiry = new InquiryEntity { Id = suc.InquiryId }, - suc.IsFinished); + IsFinished = suc.IsFinished + }; } } \ No newline at end of file diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestSuccessEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestSuccessEntity.cs index 251a00a..38fd018 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestSuccessEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestSuccessEntity.cs @@ -1,57 +1,74 @@ using Entities; -namespace TestEF; +namespace TestEF.EntitiesTests; public class TestSuccessEntity { - private const int _userId = 42; - private const int _inquiryId = 7; - private const bool _isFinished = true; + private const int UserId = 42; + private const int InquiryId = 7; + private const bool IsFinished = true; [Fact] public void TestDefaultConstructor() { SuccessEntity success = new SuccessEntity(); - Assert.Equal(0,success.UserId); + Assert.Equal(0, success.UserId); Assert.Null(success.User); - Assert.Equal(0,success.InquiryId); + Assert.Equal(0, success.InquiryId); Assert.Null(success.Inquiry); Assert.False(success.IsFinished); } - + [Fact] public void TestConstructorWithIds() { - SuccessEntity success = new SuccessEntity(_userId, _inquiryId, _isFinished); - Assert.Equal(_userId,success.UserId); + SuccessEntity success = new SuccessEntity + { + UserId = UserId, + InquiryId = InquiryId, + IsFinished = IsFinished + }; + Assert.Equal(UserId, success.UserId); Assert.Null(success.User); - Assert.Equal(_inquiryId,success.InquiryId); + Assert.Equal(InquiryId, success.InquiryId); Assert.Null(success.Inquiry); Assert.True(success.IsFinished); } - + [Fact] public void TestConstructorWithNavigationProperties() { UserEntity user = new UserEntity(); InquiryEntity inquiry = new InquiryEntity(); - SuccessEntity success = new SuccessEntity(user, inquiry, _isFinished); - Assert.Equal(0,success.UserId); + SuccessEntity success = new SuccessEntity + { + User = user, + Inquiry = inquiry, + IsFinished = IsFinished + }; + Assert.Equal(0, success.UserId); Assert.NotNull(success.User); - Assert.Equal(0,success.InquiryId); + Assert.Equal(0, success.InquiryId); Assert.NotNull(success.Inquiry); Assert.True(success.IsFinished); } - + [Fact] public void TestConstructorWithAllAttributes() { UserEntity user = new UserEntity(); InquiryEntity inquiry = new InquiryEntity(); - SuccessEntity success = new SuccessEntity(_userId, user, _inquiryId, inquiry, _isFinished); - Assert.Equal(_userId,success.UserId); + SuccessEntity success = new SuccessEntity + { + UserId = UserId, + User = user, + InquiryId = InquiryId, + Inquiry = inquiry, + IsFinished = IsFinished + }; + Assert.Equal(UserId, success.UserId); Assert.NotNull(success.User); - Assert.Equal(_inquiryId,success.InquiryId); + Assert.Equal(InquiryId, success.InquiryId); Assert.NotNull(success.Inquiry); Assert.True(success.IsFinished); } -- 2.36.3 From 0790e47c0b26793318832741b297a1eb0b2098db Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 11:27:53 +0100 Subject: [PATCH 10/13] Suppression de constructeurs restants --- API_SQLuedo/EntityFramework/SuccessEntity.cs | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/API_SQLuedo/EntityFramework/SuccessEntity.cs b/API_SQLuedo/EntityFramework/SuccessEntity.cs index d053a92..c69b742 100644 --- a/API_SQLuedo/EntityFramework/SuccessEntity.cs +++ b/API_SQLuedo/EntityFramework/SuccessEntity.cs @@ -13,15 +13,4 @@ public class SuccessEntity public int InquiryId { get; set; } public InquiryEntity Inquiry { get; set; } public bool IsFinished { get; set; } - - public SuccessEntity() { } - - public SuccessEntity(int userId, UserEntity user, int inquiryId, InquiryEntity inquiry, bool isFinished) - { - UserId = userId; - User = user; - InquiryId = inquiryId; - Inquiry = inquiry; - IsFinished = isFinished; - } } \ No newline at end of file -- 2.36.3 From 56a3fc2b4916d62f1a2bc2e33ce78694f6e09820 Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 11:44:45 +0100 Subject: [PATCH 11/13] Modification du testConsoleEF suite aux changements des constructeurs --- API_SQLuedo/TestConsoleEf/Program.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/API_SQLuedo/TestConsoleEf/Program.cs b/API_SQLuedo/TestConsoleEf/Program.cs index c7bc583..57aa45b 100644 --- a/API_SQLuedo/TestConsoleEf/Program.cs +++ b/API_SQLuedo/TestConsoleEf/Program.cs @@ -167,15 +167,12 @@ using (var db = new StubbedContext(options)) // Affichage de la solution de l'enquete sur les orang outan Console.WriteLine("\nAffichage de la solution de l'enquete sur les orang outan"); - var sol = await solutions.FirstOrDefaultAsync(s => s.Owner.Title == "L'enquête sur les orang outan"); - Console.WriteLine(sol.MurdererFirstName); - - var inquirySolution = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête sur les orang outan"); - var i = inquirySolution.Id; + var inquiryEntity = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête sur les orang outan"); + var solution = await solutions.FirstOrDefaultAsync(s => s.OwnerId == inquiryEntity.Id); foreach (var pptt in typeof(SolutionEntity).GetProperties() - .Where(p => p.CanWrite && p.Name != nameof(SolutionEntity.Owner))) + .Where(p => p.CanRead && p.Name != nameof(SolutionEntity.Owner))) { - Console.WriteLine(pptt.GetValue(i)); + Console.WriteLine(pptt.GetValue(solution)); } // Ajout d'une enquete -- 2.36.3 From b750dcbb7162e1d7b33f0551387ddd3812842be2 Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 11:47:29 +0100 Subject: [PATCH 12/13] =?UTF-8?q?:technologist:=20Am=C3=A9lioration=20du?= =?UTF-8?q?=20code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- API_SQLuedo/TestEF/EntitiesTests/TestBlackListEntity.cs | 2 +- API_SQLuedo/TestEF/EntitiesTests/TestInquiryTableEntity.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestBlackListEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestBlackListEntity.cs index abc2ad6..1453cd4 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestBlackListEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestBlackListEntity.cs @@ -8,7 +8,7 @@ public class TestBlackListEntity public void Constructor_ShouldSetProperties_WhenCalledWithTwoParameters() { // Arrange - string email = "test@example.com"; + const string email = "test@example.com"; DateOnly expirationDate = DateOnly.FromDateTime(DateTime.Now.AddDays(10)); // Act diff --git a/API_SQLuedo/TestEF/EntitiesTests/TestInquiryTableEntity.cs b/API_SQLuedo/TestEF/EntitiesTests/TestInquiryTableEntity.cs index 48ff9e2..8803ac3 100644 --- a/API_SQLuedo/TestEF/EntitiesTests/TestInquiryTableEntity.cs +++ b/API_SQLuedo/TestEF/EntitiesTests/TestInquiryTableEntity.cs @@ -5,7 +5,7 @@ namespace TestEF.EntitiesTests; public class TestInquiryTableEntity { private const int InquiryId = 42; - private static readonly InquiryEntity Inquiry = new InquiryEntity(); + private static readonly InquiryEntity Inquiry = new (); private const string DatabaseName = "Database"; private const string ConnectionInfo = "Connection"; -- 2.36.3 From 2c94d15db71efcb2ba5ed1042a399536104c187f Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 16 Mar 2024 13:05:13 +0100 Subject: [PATCH 13/13] Suppression faute de frappe au moment du push --- API_SQLuedo/TestAPI/InquiryUnitTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API_SQLuedo/TestAPI/InquiryUnitTest.cs b/API_SQLuedo/TestAPI/InquiryUnitTest.cs index e833558..9bfdb68 100644 --- a/API_SQLuedo/TestAPI/InquiryUnitTest.cs +++ b/API_SQLuedo/TestAPI/InquiryUnitTest.cs @@ -246,7 +246,7 @@ public class InquiryUnitTest var inquiriesResult = inquiriesController.UpdateInquiry(1, new InquiryDto(2, "Passssss", "heudfk@hdye.com", true)); - if (inquiriesResult is BadRequestResult bdObjectResultx) + if (inquiriesResult is BadRequestResult bdObjectResult) { Assert.Equal(400, bdObjectResult.StatusCode); } -- 2.36.3