From 8b7a9d896543f7d83f5e7141c4d8322cd0d0b422 Mon Sep 17 00:00:00 2001 From: Nestisse Date: Sat, 9 Mar 2024 09:48:21 +0100 Subject: [PATCH] Ajout des tests sur les enquetes --- API_SQLuedo/TestConsoleEf/Program.cs | 143 +++++++++++++++++++++++++-- 1 file changed, 136 insertions(+), 7 deletions(-) diff --git a/API_SQLuedo/TestConsoleEf/Program.cs b/API_SQLuedo/TestConsoleEf/Program.cs index 380fe1e..33b60fa 100644 --- a/API_SQLuedo/TestConsoleEf/Program.cs +++ b/API_SQLuedo/TestConsoleEf/Program.cs @@ -4,7 +4,6 @@ using Entities; using Microsoft.AspNetCore.Cryptography.KeyDerivation; using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.Logging; using StubbedContextLib; var connection = new SqliteConnection("DataSource=:memory:"); @@ -13,23 +12,23 @@ var options = new DbContextOptionsBuilder() .UseSqlite(connection) .Options; -using ILoggerFactory factory = new LoggerFactory(); +// Partie sur les utilisateurs using (var db = new StubbedContext(options)) { await db.Database.EnsureCreatedAsync(); - // Test sur les users + // Test sur les utilisateurs var users = db.Users; - // Affichage de tous les users + // Affichage de tous les utilisateurs Console.WriteLine("Affichage des noms des utilisateurs"); foreach (var user in users) { Console.WriteLine(user.Username); } - // Affichage des users filtrés + // Affichage des utilisateurs filtrés Console.WriteLine("\nAffichage des utilisateurs contenant e"); var filteredUsers = users.Where(u => u.Username.Contains("e")); foreach (var user in filteredUsers) @@ -37,7 +36,7 @@ using (var db = new StubbedContext(options)) Console.WriteLine(user.Username); } - // Affichage des users triés + // Affichage des utilisateurs triés Console.WriteLine("\nAffichage des utilisateurs triés selon leur nom"); var orderedUsers = users.OrderBy(u => u.Username); foreach (var user in orderedUsers) @@ -62,11 +61,13 @@ using (var db = new StubbedContext(options)) using (var db = new StubbedContext(options)) { + await db.Database.EnsureCreatedAsync(); + var users = db.Users; // Affichage du nouvel utilisateur Console.WriteLine("\nAffichage du nouvel utilisateur"); var u = await users.FirstOrDefaultAsync(u => u.Username == "le nouveau du groupe"); - foreach (var pptt in typeof(UserEntity).GetProperties().Where((p => p.CanWrite && p.Name != nameof(UserEntity.Id)))) + foreach (var pptt in typeof(UserEntity).GetProperties().Where(p => p.CanWrite && p.Name != nameof(UserEntity.Id))) { Console.WriteLine(pptt.GetValue(u)); } @@ -82,6 +83,8 @@ using (var db = new StubbedContext(options)) using (var db = new StubbedContext(options)) { + await db.Database.EnsureCreatedAsync(); + var users = db.Users; // Affichage des utilisateurs après suppression Console.WriteLine("\nAffichage des utilisateurs après suppression"); @@ -102,6 +105,8 @@ using (var db = new StubbedContext(options)) using (var db = new StubbedContext(options)) { + await db.Database.EnsureCreatedAsync(); + var users = db.Users; // Affichage des utilisateurs après modification var userToModify = await users.FirstOrDefaultAsync(u => u.Username == "clement modifié"); @@ -117,4 +122,128 @@ using (var db = new StubbedContext(options)) await db.SaveChangesAsync(); } } +} + +// Partie sur les enquetes +using (var db = new StubbedContext(options)) +{ + await db.Database.EnsureCreatedAsync(); + + // Test sur les enquetes + var inquiries = db.Inquiry; + + // Affichage de toutes les enquetes + Console.WriteLine("\nAffichage des noms des enquetes"); + foreach (var inquiry in inquiries) + { + Console.WriteLine(inquiry.Title); + } + + // Affichage des enquetes filtrées + Console.WriteLine("\nAffichage des enquetes contenant o"); + var filteredInquiries = inquiries.Where(i => i.Title.Contains("o")); + foreach (var inquiry in filteredInquiries) + { + Console.WriteLine(inquiry.Title); + } + + // Affichage des enquetes triées + Console.WriteLine("\nAffichage des enquetes triées selon leur nom"); + var orderedInquiries = inquiries.OrderBy(i => i.Title); + foreach (var inquiry in orderedInquiries) + { + Console.WriteLine(inquiry.Title); + } + + var fkoaf = db.Solutions; + + // 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 inquirySolution = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête sur les orang outan"); + var i = inquirySolution.InquiryTable; + foreach (var pptt in typeof(SolutionEntity).GetProperties() + .Where(p => p.CanWrite && p.Name != nameof(SolutionEntity.Owner))) + { + Console.WriteLine(pptt.GetValue(i)); + } + + // 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, + null, + null); + if (!inquiries.Any(inquiry => inquiry.Title == newInquiry.Title)) + { + inquiries.Add(newInquiry); + await db.SaveChangesAsync(); + } +} + +using (var db = new StubbedContext(options)) +{ + await db.Database.EnsureCreatedAsync(); + + var inquiries = db.Inquiry; + // Affichage de la nouvelle enquete + Console.WriteLine("\nAffichage de la nouvelle enquete"); + var i = await inquiries.FirstOrDefaultAsync(i => i.Title == "La nouvelle enquete"); + foreach (var pptt in typeof(InquiryEntity).GetProperties() + .Where(p => p.CanWrite && p.Name != nameof(InquiryEntity.Id))) + { + Console.WriteLine(pptt.GetValue(i)); + } + + if (i != null) + { + // Suppression de la nouvelle enquete + Console.WriteLine("\nSuppression de la nouvelle enquete"); + db.Inquiry.Remove(i); + await db.SaveChangesAsync(); + } +} + +using (var db = new StubbedContext(options)) +{ + await db.Database.EnsureCreatedAsync(); + + var inquiries = db.Inquiry; + // Affichage des utilisateurs après suppression + Console.WriteLine("\nAffichage des utilisateurs après suppression"); + foreach (var inquiry in inquiries) + { + Console.WriteLine(inquiry.Title); + } + + // Modification d'une enquete + Console.WriteLine("\nModification de l'enquete L'enquête de la carotte"); + var inquiryToModify = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête de la carotte"); + if (inquiryToModify != null) + { + inquiryToModify.Title = "L'enquête de la carotte modifiée"; + await db.SaveChangesAsync(); + } +} + +using (var db = new StubbedContext(options)) +{ + await db.Database.EnsureCreatedAsync(); + + var inquiries = db.Inquiry; + // Affichage des enquetes après modification + var inquiryToModify = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête de la carotte modifiée"); + if (inquiryToModify != null) + { + Console.WriteLine("\nAffichage de l'enquete après modification"); + Console.WriteLine(inquiryToModify.Title); + // Rollback + inquiryToModify = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête de la carotte modifiée"); + if (inquiryToModify != null) + { + inquiryToModify.Title = "L'enquête de la carotte"; + await db.SaveChangesAsync(); + } + } } \ No newline at end of file