tactics and users ef console tests
continuous-integration/drone/push Build is passing Details

consoleTests
Vivien DUFOUR 1 year ago
parent 5e142f4604
commit 9f2e9c0996

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ActiveDebugProfile>https</ActiveDebugProfile>
</PropertyGroup>
</Project>

@ -26,12 +26,8 @@ public class AppContext : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
if (optionsBuilder.IsConfigured)
if (!optionsBuilder.IsConfigured)
{
return;
}
var pgsqliteDsn = Environment.GetEnvironmentVariable("PGSQL_DSN");
if (pgsqliteDsn != null)
@ -42,7 +38,7 @@ public class AppContext : DbContext
{
optionsBuilder.UseSqlite("Data Source=database.db");
}
}
}
protected override void OnModelCreating(ModelBuilder builder)

@ -0,0 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\DbServices\DbServices.csproj" />
<ProjectReference Include="..\Model\Model.csproj" />
<ProjectReference Include="..\StubContext\StubContext.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.0" />
</ItemGroup>
</Project>

@ -0,0 +1,54 @@
using StubContext;
namespace EFConsole
{
class Program
{
static void Main(string[] args)
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
try
{
using (AppContext.AppContext db = new StubAppContext())
{
TestUserMethods(db);
TestTacticMethods(db);
db.SaveChanges();
}
}
catch (Exception ex)
{
Console.WriteLine($"Une erreur s'est produite : {ex.Message}");
if (ex.InnerException != null)
{
Console.WriteLine($"Détails de l'exception interne : {ex.InnerException.Message}");
}
}
}
static void TestUserMethods(AppContext.AppContext db)
{
UsersConsole.TestAddUser(db);
UsersConsole.TestGetAllUsers(db);
UsersConsole.TestFindUserByMail(db, "maxime@mail.com");
UsersConsole.TestUpdateUser(db);
UsersConsole.TestDeleteUser(db);
UsersConsole.TestSearchUsersByName(db, "Pierre");
UsersConsole.TestGetTacticsOfAllUsers(db);
UsersConsole.TestGetTacticsOfOneUser(db, 1);
}
static void TestTacticMethods(AppContext.AppContext db)
{
TacticsConsole.TestAddTactic(db);
TacticsConsole.TestGetAllTactics(db);
TacticsConsole.TestFindTacticById(db, 1);
TacticsConsole.TestUpdateTactic(db, 1, "Nouveau nom");
TacticsConsole.TestDeleteTactic(db, 1);
TacticsConsole.TestGetTacticsByOwner(db, 1);
}
}
}

@ -0,0 +1,89 @@
using System;
using System.Linq;
using AppContext.Entities;
using Model;
namespace EFConsole
{
class TacticsConsole
{
internal static void TestAddTactic(AppContext.AppContext db)
{
var newTactic = new TacticEntity
{
Name = "Nouvelle tactique",
CreationDate = DateTime.Now,
OwnerId = 1,
Type = CourtType.Plain
};
db.Tactics.Add(newTactic);
db.SaveChanges();
Console.WriteLine("Tactique ajoutée avec succès !");
}
internal static void TestGetAllTactics(AppContext.AppContext db)
{
var tactics = db.Tactics.ToList();
Console.WriteLine("Liste des tactiques :");
foreach (var tactic in tactics)
{
Console.WriteLine($"ID : {tactic.Id}, Nom : {tactic.Name}, Date de création : {tactic.CreationDate}");
}
}
internal static void TestFindTacticById(AppContext.AppContext db, int tacticId)
{
var tactic = db.Tactics.FirstOrDefault(t => t.Id == tacticId);
if (tactic != null)
{
Console.WriteLine($"Tactique trouvée avec l'ID {tacticId}: Nom : {tactic.Name}, Date de création : {tactic.CreationDate}");
}
else
{
Console.WriteLine($"Aucune tactique trouvée avec l'ID {tacticId}");
}
}
internal static void TestUpdateTactic(AppContext.AppContext db, int tacticId, string newName)
{
var tacticToUpdate = db.Tactics.FirstOrDefault(t => t.Id == tacticId);
if (tacticToUpdate != null)
{
tacticToUpdate.Name = newName;
db.SaveChanges();
Console.WriteLine($"Tactique mise à jour avec succès !");
}
else
{
Console.WriteLine($"Aucune tactique trouvée avec l'ID {tacticId}");
}
}
internal static void TestDeleteTactic(AppContext.AppContext db, int tacticId)
{
var tacticToDelete = db.Tactics.FirstOrDefault(t => t.Id == tacticId);
if (tacticToDelete != null)
{
db.Tactics.Remove(tacticToDelete);
db.SaveChanges();
Console.WriteLine($"Tactique supprimée avec succès !");
}
else
{
Console.WriteLine($"Aucune tactique trouvée avec l'ID {tacticId}");
}
}
internal static void TestGetTacticsByOwner(AppContext.AppContext db, int ownerId)
{
var tactics = db.Tactics.Where(t => t.OwnerId == ownerId).ToList();
Console.WriteLine($"Tactiques de l'utilisateur avec l'ID {ownerId} :");
foreach (var tactic in tactics)
{
Console.WriteLine($"ID : {tactic.Id}, Nom : {tactic.Name}, Date de création : {tactic.CreationDate}");
}
}
}
}

@ -0,0 +1,120 @@
using Microsoft.EntityFrameworkCore;
namespace EFConsole;
class UsersConsole
{
internal static void TestAddUser(AppContext.AppContext db)
{
var newUser = new AppContext.Entities.UserEntity
{
Name = "Pierre",
Email = "pierre@mail.com",
Password = "123456",
ProfilePicture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png",
IsAdmin = false
};
db.Users.Add(newUser);
db.SaveChanges();
Console.WriteLine("Utilisateur ajouté avec succès !");
}
internal static void TestGetAllUsers(AppContext.AppContext db)
{
var users = db.Users.ToList();
Console.WriteLine("Liste des utilisateurs :");
foreach (var user in users)
{
Console.WriteLine($"ID : {user.Id}, Nom : {user.Name}, Email : {user.Email}");
}
}
internal static void TestFindUserByMail(AppContext.AppContext db, string userEmail)
{
var userByEmail = db.Users.FirstOrDefault(u => u.Email == userEmail);
if (userByEmail != null)
{
Console.WriteLine($"Utilisateur trouvé par email : {userByEmail.Name}");
}
else
{
Console.WriteLine($"Aucun utilisateur trouvé avec l'email : {userEmail}");
}
}
internal static void TestUpdateUser(AppContext.AppContext db)
{
var userToUpdate = db.Users.FirstOrDefault(u => u.Name == "Pierre");
if (userToUpdate != null)
{
userToUpdate.Name = "Paul";
db.SaveChanges();
Console.WriteLine("Utilisateur mis à jour avec succès !");
}
else
{
Console.WriteLine("Utilisateur non trouvé pour la mise à jour.");
}
}
internal static void TestDeleteUser(AppContext.AppContext db)
{
var userToDelete = db.Users.FirstOrDefault(u => u.Name == "Paul");
if (userToDelete != null)
{
db.Users.Remove(userToDelete);
db.SaveChanges();
Console.WriteLine("Utilisateur supprimé avec succès !");
}
else
{
Console.WriteLine("Utilisateur non trouvé pour la suppression.");
}
}
internal static void TestSearchUsersByName(AppContext.AppContext db, string userName)
{
var usersByName = db.Users.Where(u => u.Name == userName).ToList();
Console.WriteLine($"Utilisateurs avec le nom '{userName}' :");
foreach (var user in usersByName)
{
Console.WriteLine($"ID : {user.Id}, Nom : {user.Name}, Email : {user.Email}");
}
}
internal static void TestGetTacticsOfAllUsers(AppContext.AppContext db)
{
Console.WriteLine("Récupération des tactiques de tous les utilisateurs :");
var users = db.Users.Include(u => u.Tactics).ToList();
foreach (var user in users)
{
Console.WriteLine($"Tactiques de l'utilisateur {user.Name}:");
foreach (var tactic in user.Tactics)
{
Console.WriteLine($"\tID : {tactic.Id}, Nom : {tactic.Name}, Date de création : {tactic.CreationDate}");
}
}
}
internal static void TestGetTacticsOfOneUser(AppContext.AppContext db, int userId)
{
var user = db.Users.Include(u => u.Tactics).FirstOrDefault(u => u.Id == userId);
if (user != null)
{
Console.WriteLine($"Récupération des tactiques de l'utilisateur {user.Name}:");
foreach (var tactic in user.Tactics)
{
Console.WriteLine($"\tID : {tactic.Id}, Nom : {tactic.Name}, Date de création : {tactic.CreationDate}");
}
}
else
{
Console.WriteLine($"Aucun utilisateur trouvé avec l'ID : {userId}");
}
}
}

@ -16,6 +16,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Converters", "Converters\Co
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "UnitTests\UnitTests.csproj", "{82A100BE-5610-4741-8F23-1CD653E8EFCD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EFConsole", "EFConsole\EFConsole.csproj", "{DC9ACDB3-83BC-4DF2-84C7-070361648975}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -62,5 +64,9 @@ Global
{82A100BE-5610-4741-8F23-1CD653E8EFCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82A100BE-5610-4741-8F23-1CD653E8EFCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{82A100BE-5610-4741-8F23-1CD653E8EFCD}.Release|Any CPU.Build.0 = Release|Any CPU
{DC9ACDB3-83BC-4DF2-84C7-070361648975}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DC9ACDB3-83BC-4DF2-84C7-070361648975}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DC9ACDB3-83BC-4DF2-84C7-070361648975}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DC9ACDB3-83BC-4DF2-84C7-070361648975}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

Loading…
Cancel
Save