Ajout des tests sur les enquetes

pull/31/head
Clement CHIEU 1 year ago
parent 7c88ef1b84
commit 8b7a9d8965

@ -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<UserDbContext>()
.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();
}
}
}
Loading…
Cancel
Save