From a93dcb99752f9dd6eff2eb404e42f83cad18feb2 Mon Sep 17 00:00:00 2001 From: vidufour1 Date: Sat, 16 Mar 2024 18:13:19 +0100 Subject: [PATCH] tacticsSteps, teams and members ef console tests --- APIConsole/APIConsole.csproj | 10 ++++ APIConsole/Program.cs | 3 ++ EFConsole/MembersConsole.cs | 88 +++++++++++++++++++++++++++++++++ EFConsole/Program.cs | 35 ++++++++++++- EFConsole/TacticsStepConsole.cs | 75 ++++++++++++++++++++++++++++ EFConsole/TeamsConsole.cs | 85 +++++++++++++++++++++++++++++++ WebAPI.sln | 6 +++ 7 files changed, 300 insertions(+), 2 deletions(-) create mode 100644 APIConsole/APIConsole.csproj create mode 100644 APIConsole/Program.cs create mode 100644 EFConsole/MembersConsole.cs create mode 100644 EFConsole/TacticsStepConsole.cs create mode 100644 EFConsole/TeamsConsole.cs diff --git a/APIConsole/APIConsole.csproj b/APIConsole/APIConsole.csproj new file mode 100644 index 0000000..2f4fc77 --- /dev/null +++ b/APIConsole/APIConsole.csproj @@ -0,0 +1,10 @@ + + + + Exe + net8.0 + enable + enable + + + diff --git a/APIConsole/Program.cs b/APIConsole/Program.cs new file mode 100644 index 0000000..e5dff12 --- /dev/null +++ b/APIConsole/Program.cs @@ -0,0 +1,3 @@ +// See https://aka.ms/new-console-template for more information + +Console.WriteLine("Hello, World!"); \ No newline at end of file diff --git a/EFConsole/MembersConsole.cs b/EFConsole/MembersConsole.cs new file mode 100644 index 0000000..5b70248 --- /dev/null +++ b/EFConsole/MembersConsole.cs @@ -0,0 +1,88 @@ +using System; +using System.Linq; +using AppContext.Entities; +using Model; + +namespace EFConsole +{ + public class MembersConsole + { + public static void TestAddMember(AppContext.AppContext db) + { + var newMember = new MemberEntity + { + TeamId = 1, + UserId = 1, + Role = MemberRole.Player + }; + + db.Members.Add(newMember); + db.SaveChanges(); + + Console.WriteLine("Membre ajouté avec succès !"); + } + + public static void TestGetAllMembers(AppContext.AppContext db) + { + var members = db.Members.ToList(); + Console.WriteLine("Liste des membres :"); + foreach (var member in members) + { + Console.WriteLine($"ID Équipe : {member.TeamId}, ID Utilisateur : {member.UserId}, Rôle : {member.Role}"); + } + } + + public static void TestGetMembersByTeamId(AppContext.AppContext db, int teamId) + { + var members = db.Members.Where(m => m.TeamId == teamId).ToList(); + Console.WriteLine($"Membres de l'équipe avec ID {teamId} :"); + foreach (var member in members) + { + Console.WriteLine($"ID Équipe : {member.TeamId}, ID Utilisateur : {member.UserId}, Rôle : {member.Role}"); + } + } + + public static void TestGetMembersByUserId(AppContext.AppContext db, int userId) + { + var members = db.Members.Where(m => m.UserId == userId).ToList(); + Console.WriteLine($"Membres associés à l'utilisateur avec ID {userId} :"); + foreach (var member in members) + { + Console.WriteLine($"ID Équipe : {member.TeamId}, ID Utilisateur : {member.UserId}, Rôle : {member.Role}"); + } + } + + public static void TestUpdateMemberRole(AppContext.AppContext db, int teamId, int memberId, MemberRole newRole) + { + var memberToUpdate = db.Members.FirstOrDefault(m => m.TeamId == teamId && m.UserId == memberId); // Trouver le membre dans l'équipe spécifiée + if (memberToUpdate != null) + { + memberToUpdate.Role = newRole; + db.SaveChanges(); + Console.WriteLine("Rôle du membre mis à jour avec succès !"); + } + else + { + Console.WriteLine($"Aucun membre trouvé dans l'équipe avec l'ID {teamId} et l'ID utilisateur {memberId}."); + } + } + + + public static void TestRemoveMember(AppContext.AppContext db, int teamId, int memberId) + { + var memberToDelete = db.Members.FirstOrDefault(m => m.TeamId == teamId && m.UserId == memberId); // Trouver le membre dans l'équipe spécifiée + if (memberToDelete != null) + { + db.Members.Remove(memberToDelete); // Supprimer le membre + db.SaveChanges(); + Console.WriteLine("Membre supprimé avec succès !"); + } + else + { + Console.WriteLine($"Aucun membre trouvé dans l'équipe avec l'ID {teamId} et l'ID utilisateur {memberId} pour la suppression."); + } + } + + + } +} diff --git a/EFConsole/Program.cs b/EFConsole/Program.cs index 410ec39..2c101f9 100644 --- a/EFConsole/Program.cs +++ b/EFConsole/Program.cs @@ -1,4 +1,5 @@ -using StubContext; +using Model; +using StubContext; namespace EFConsole { @@ -14,7 +15,9 @@ namespace EFConsole { TestUserMethods(db); TestTacticMethods(db); - db.SaveChanges(); + TestTeamMethods(db); + TestMemberMethods(db); + TestTacticsStepMethods(db); } } catch (Exception ex) @@ -49,6 +52,34 @@ namespace EFConsole TacticsConsole.TestDeleteTactic(db, 1); TacticsConsole.TestGetTacticsByOwner(db, 1); } + + static void TestTeamMethods(AppContext.AppContext db) + { + TeamsConsole.TestAddTeam(db); + TeamsConsole.TestGetAllTeams(db); + TeamsConsole.TestGetTeamMembers(db, 1); + TeamsConsole.TestUpdateTeam(db, 1, "Nouveau nom", "Nouvelle image", "#FF0000", "#00FF00"); + TeamsConsole.TestDeleteTeam(db, 1); + } + + static void TestMemberMethods(AppContext.AppContext db) + { + MembersConsole.TestAddMember(db); + MembersConsole.TestGetAllMembers(db); + MembersConsole.TestGetMembersByTeamId(db, 1); + MembersConsole.TestGetMembersByUserId(db, 1); + MembersConsole.TestUpdateMemberRole(db, 1, 1, MemberRole.Coach); + MembersConsole.TestRemoveMember(db, 1, 1); + } + + static void TestTacticsStepMethods(AppContext.AppContext db) + { + TacticsStepConsole.TestAddTacticStep(db); + TacticsStepConsole.TestGetAllTacticSteps(db); + TacticsStepConsole.TestGetTacticStepsByTacticId(db, 1); + TacticsStepConsole.TestUpdateTacticStepContent(db, 1, "test content"); + TacticsStepConsole.TestDeleteTacticStep(db, 1); + } } } \ No newline at end of file diff --git a/EFConsole/TacticsStepConsole.cs b/EFConsole/TacticsStepConsole.cs new file mode 100644 index 0000000..3bca4fa --- /dev/null +++ b/EFConsole/TacticsStepConsole.cs @@ -0,0 +1,75 @@ +using System; +using System.Linq; +using AppContext.Entities; +using Model; + +namespace EFConsole +{ + public class TacticsStepConsole + { + public static void TestAddTacticStep(AppContext.AppContext db) + { + var newTacticStep = new TacticStepEntity + { + ParentId = 1, + TacticId = 1, + JsonContent = "{}" + }; + + db.TacticSteps.Add(newTacticStep); + db.SaveChanges(); + + Console.WriteLine("Étape de tactique ajoutée avec succès !"); + } + + public static void TestGetAllTacticSteps(AppContext.AppContext db) + { + var tacticSteps = db.TacticSteps.ToList(); + Console.WriteLine("Liste des étapes de tactique :"); + foreach (var tacticStep in tacticSteps) + { + Console.WriteLine($"ID : {tacticStep.Id}, ID Tactique : {tacticStep.TacticId}, Contenu JSON : {tacticStep.JsonContent}"); + } + } + + public static void TestGetTacticStepsByTacticId(AppContext.AppContext db, int tacticId) + { + var tacticSteps = db.TacticSteps.Where(ts => ts.TacticId == tacticId).ToList(); + Console.WriteLine($"Étapes de tactique pour la tactique avec l'ID {tacticId} :"); + foreach (var tacticStep in tacticSteps) + { + Console.WriteLine($"ID : {tacticStep.Id}, ID Tactique : {tacticStep.TacticId}, Contenu JSON : {tacticStep.JsonContent}"); + } + } + + public static void TestUpdateTacticStepContent(AppContext.AppContext db, int tacticStepId, string newContent) + { + var tacticStepToUpdate = db.TacticSteps.FirstOrDefault(ts => ts.Id == tacticStepId); + if (tacticStepToUpdate != null) + { + tacticStepToUpdate.JsonContent = newContent; + db.SaveChanges(); + Console.WriteLine("Contenu de l'étape de tactique mis à jour avec succès !"); + } + else + { + Console.WriteLine($"Aucune étape de tactique trouvée avec l'ID {tacticStepId} pour la mise à jour du contenu."); + } + } + + public static void TestDeleteTacticStep(AppContext.AppContext db, int tacticStepId) + { + var tacticStepToDelete = db.TacticSteps.FirstOrDefault(ts => ts.Id == tacticStepId); + if (tacticStepToDelete != null) + { + db.TacticSteps.Remove(tacticStepToDelete); + db.SaveChanges(); + Console.WriteLine("Étape de tactique supprimée avec succès !"); + } + else + { + Console.WriteLine($"Aucune étape de tactique trouvée avec l'ID {tacticStepId} pour la suppression."); + } + } + } +} diff --git a/EFConsole/TeamsConsole.cs b/EFConsole/TeamsConsole.cs new file mode 100644 index 0000000..017739a --- /dev/null +++ b/EFConsole/TeamsConsole.cs @@ -0,0 +1,85 @@ +using System; +using System.Linq; +using AppContext.Entities; + +namespace EFConsole +{ + class TeamsConsole + { + internal static void TestAddTeam(AppContext.AppContext db) + { + var newTeam = new TeamEntity + { + Name = "Nouvelle équipe", + Picture = "https://cdn.pixabay.com/photo/2015/10/05/22/37/blank-profile-picture-973460_960_720.png", + MainColor = "#0000FF", + SecondColor = "#FFFFFF" + }; + + db.Teams.Add(newTeam); + db.SaveChanges(); + + Console.WriteLine("Équipe ajoutée avec succès !"); + } + + internal static void TestGetAllTeams(AppContext.AppContext db) + { + var teams = db.Teams.ToList(); + Console.WriteLine("Liste des équipes :"); + foreach (var team in teams) + { + Console.WriteLine($"ID : {team.Id}, Nom : {team.Name}, Image : {team.Picture}, Couleur principale : {team.MainColor}, Couleur secondaire : {team.SecondColor}"); + } + } + + internal static void TestGetTeamMembers(AppContext.AppContext db, int teamId) + { + var team = db.Teams.FirstOrDefault(t => t.Id == teamId); + if (team != null) + { + Console.WriteLine($"Membres de l'équipe '{team.Name}' :"); + foreach (var member in team.Members) + { + Console.WriteLine($"ID : {member.UserId}, Nom : {member.User?.Name}, Rôle : {member.Role}"); + } + } + else + { + Console.WriteLine($"Aucune équipe trouvée avec l'ID : {teamId}"); + } + } + + internal static void TestUpdateTeam(AppContext.AppContext db, int teamId, string newName, string newPicture, string newMainColor, string newSecondColor) + { + var teamToUpdate = db.Teams.FirstOrDefault(t => t.Id == teamId); + if (teamToUpdate != null) + { + teamToUpdate.Name = newName; + teamToUpdate.Picture = newPicture; + teamToUpdate.MainColor = newMainColor; + teamToUpdate.SecondColor = newSecondColor; + db.SaveChanges(); + Console.WriteLine("Équipe mise à jour avec succès !"); + } + else + { + Console.WriteLine($"Aucune équipe trouvée avec l'ID : {teamId}"); + } + } + + internal static void TestDeleteTeam(AppContext.AppContext db, int teamId) + { + var teamToDelete = db.Teams.FirstOrDefault(t => t.Id == teamId); + if (teamToDelete != null) + { + db.Teams.Remove(teamToDelete); + db.SaveChanges(); + Console.WriteLine("Équipe supprimée avec succès !"); + } + else + { + Console.WriteLine($"Aucune équipe trouvée avec l'ID : {teamId}"); + } + } + } +} diff --git a/WebAPI.sln b/WebAPI.sln index 6735f5f..a6888fe 100644 --- a/WebAPI.sln +++ b/WebAPI.sln @@ -18,6 +18,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "UnitTests\Unit EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EFConsole", "EFConsole\EFConsole.csproj", "{DC9ACDB3-83BC-4DF2-84C7-070361648975}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "APIConsole", "APIConsole\APIConsole.csproj", "{B01BD72E-15D3-4DC6-8DAC-2270A01129A9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -68,5 +70,9 @@ Global {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 + {B01BD72E-15D3-4DC6-8DAC-2270A01129A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B01BD72E-15D3-4DC6-8DAC-2270A01129A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B01BD72E-15D3-4DC6-8DAC-2270A01129A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B01BD72E-15D3-4DC6-8DAC-2270A01129A9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal