Preparation pour EntityFramework
continuous-integration/drone/push Build is passing Details

pull/34/head
victor perez ngounou 3 years ago
parent cc83dc4935
commit cdf7139138

@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

@ -0,0 +1,7 @@
namespace BowlingEF
{
public class Class1
{
}
}

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BowlingEF.Entities
{
//classe EquipeEntity représentant la table Equipe de la base de données
public class EquipeEntity
{
public long Id { get; set; }
public string Nom { get; set; }
public List<JoueurEntity> Joueurs { get; set; }
public EquipeEntity()
{
Joueurs = new List<JoueurEntity>();
}
}
}

@ -0,0 +1,6 @@
namespace BowlingEF.Entities
{
public class JoueurEntity
{
}
}

@ -5,13 +5,13 @@ using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
namespace BowlingLib.Model
{
public class Equipe
{
private string nom;
private readonly long id;
public List<Joueur> Joueurs = new List<Joueur>();
@ -32,7 +32,10 @@ namespace BowlingLib.Model
// foreach (Joueur nouv in joueurs) AjouterJoueur(nouv);
}
public object Id { get; set; }
public long Id
{
get { return id; }
}
private int numero;

@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BowlingLib.Model
{
internal class FacadeManager
{
}
}

@ -21,6 +21,12 @@ namespace BowlingLib.Model
}
private int numero;
private long id;
public long Id
{
get { return id; }
}
public int QuillesRestantes
{ get

@ -9,6 +9,11 @@ namespace BowlingLib.Model
public class Joueur
{
private string pseudo;
private readonly long id;
public long Id
{
get { return id; }
}
public Joueur(string pseudo)
{
@ -35,6 +40,10 @@ namespace BowlingLib.Model
pseudo == joueur.pseudo &&
Pseudo == joueur.Pseudo;
}
public int Id { get; set; }
public override int GetHashCode()
{
return HashCode.Combine(pseudo, id, Id, Pseudo);
}
}
}

@ -1,147 +0,0 @@
using BowlingLib.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BowlingLib.Model
{
public class Manager
{
public IDataManager<Joueur> joueurManager { get; private set; }
public IDataManager<Partie> partieManager { get; private set; }
public IDataManager<Equipe> equipeManager { get; private set; }
public Manager(IDataManager<Joueur> joueurManager)
{
this.joueurManager = joueurManager;
}
public Manager(IDataManager<Partie> partieManager)
{
this.partieManager = partieManager;
}
/// <summary>
/// Ajoute un joueur à la liste des joueurs
/// </summary>
/// <param name="equipeManager"></param>
public Manager(IDataManager<Equipe> equipeManager)
{
this.equipeManager = equipeManager;
}
/// <summary>
/// Ajoute un joueur à la liste des joueurs
/// </summary>
/// <param name="joueur"></param>
public void AddJoueur(Joueur joueur)
{
joueurManager.Add(joueur);
}
/// <summary>
/// Ajoute une partie à la liste des parties
/// </summary>
/// <param name="partie"></param>
public void AddPartie(Partie partie)
{
partieManager.Add(partie);
}
/// <summary>
/// Ajoute une équipe à la liste des équipes
/// </summary>
/// <param name="equipe"></param>
public void AddEquipe(Equipe equipe)
{
equipeManager.Add(equipe);
}
/// <summary>
/// Retourne la liste des joueurs
/// </summary>
/// <param name="joueur"></param>
public void DeleteJoueur(Joueur joueur)
{
joueurManager.Delete(joueur);
}
/// <summary>
/// Supprime une partie
/// </summary>
/// <param name="partie"></param>
public void DeletePartie(Partie partie)
{
partieManager.Delete(partie);
}
/// <summary>
/// Supprime une équipe
/// </summary>
/// <param name="equipe"></param>
public void DeleteEquipe(Equipe equipe)
{
equipeManager.Delete(equipe);
}
/// <summary>
/// Retourne la liste des joueurs
/// </summary>
/// <param name="joueur"></param>
public void UpdateJoueur(Joueur joueur)
{
joueurManager.Update(joueur);
}
/// <summary>
/// Met à jour une partie
/// </summary>
/// <param name="partie"></param>
public void UpdatePartie(Partie partie)
{
partieManager.Update(partie);
}
/// <summary>
/// Met à jour une équipe
/// </summary>
/// <param name="equipe"></param>
public void UpdateEquipe(Equipe equipe)
{
equipeManager.Update(equipe);
}
/// <summary>
/// Retourne la liste des joueurs
/// </summary>
/// <returns></returns>
public IEnumerable<Joueur> GetAllJoueur()
{
return joueurManager.GetAll();
}
/// <summary>
/// Retourne les dernières parties du joueur
/// </summary>
/// <returns></returns>
public IEnumerable<Partie> GetAllPartie()
{
return partieManager.GetAll();
}
/// <summary>
/// Retourne les Equipe d'une partie
/// </summary>
/// <returns></returns>
public IEnumerable<Equipe> GetAllEquipe()
{
return equipeManager.GetAll();
}
}
}

@ -11,7 +11,8 @@ namespace BowlingLib.Model
{
//public ReadOnlyCollection<Frame> Frames;
public Joueur Joueur { get; private set; }
public object Id { get; set; }
private readonly long id;
public long Id => id;
public List<Frame> Frames;

@ -8,6 +8,7 @@
<ItemGroup>
<ProjectReference Include="..\BowlingLib\BowlingLib.csproj" />
<ProjectReference Include="..\Business\Business.csproj" />
</ItemGroup>
</Project>

@ -1,7 +1,7 @@
using BowlingLib.Model;
using BowlingLib.Interface;
using System;
using BowlingLib.Model;
using Business;
using System;
namespace BowlingStub
{
public class StubEquipe : IDataManager<Equipe>
@ -9,16 +9,29 @@ namespace BowlingStub
private List<Equipe> listEquipes = new List<Equipe>();
public StubEquipe()
{
//listEquipes.Add(new Equipe("Equipe 1", new Joueur("Joueur 1"), new Joueur("Joueur 2")));
//listEquipes.Add(new Equipe("Equipe 2", new Joueur("Joueur 3"), new Joueur("Joueur 4")));
//listEquipes.Add(new Equipe("Equipe 3", new Joueur("Joueur 5"), new Joueur("Joueur 6")));
}
public void Add(Equipe data)
public bool Add(Equipe data)
{
listEquipes.Add(data);
if (data != null)
{
listEquipes.Add(data);
return true;
}
return false;
}
public void Delete(Equipe data)
public bool Delete(Equipe data)
{
listEquipes.Remove(data);
if (data != null)
{
listEquipes.Remove(data);
return true;
}
return false;
}
public IEnumerable<Equipe> GetAll(int n = 10, int j = 2)
@ -41,12 +54,29 @@ namespace BowlingStub
return listEquipes;
}
//mise à jour d'une équipe
public void Update(Equipe data)
public bool Update(Equipe data)
{
int index = listEquipes.FindIndex(x => x.Id == data.Id);
listEquipes[index] = data;
if (data != null)
{
int index = listEquipes.FindIndex(x => x.Id == data.Id);
listEquipes[index] = data;
return true;
}
return false;
}
}
public Equipe GetDataWithId(int id)
{
throw new NotImplementedException();
}
public Equipe GetDataWithName(string name)
{
throw new NotImplementedException();
}
}
}

@ -1,5 +1,5 @@
using BowlingLib.Model;
using BowlingLib.Interface;
using Business;
using System;
namespace BowlingStub
@ -10,14 +10,24 @@ namespace BowlingStub
private List<Joueur> listJoueurs = new List<Joueur>();
public void Add(Joueur data)
public bool Add(Joueur data)
{
listJoueurs.Add(data);
if (data != null)
{
listJoueurs.Add(data);
return true;
}
return false;
}
public void Delete(Joueur data)
public bool Delete(Joueur data)
{
listJoueurs.Remove(data);
if (data != null)
{
listJoueurs.Remove(data);
return true;
}
return false;
}
public IEnumerable<Joueur> GetAll()
@ -34,10 +44,26 @@ namespace BowlingStub
return listJoueurs;
}
public void Update(Joueur data)
public Joueur GetDataWithId(int id)
{
throw new NotImplementedException();
}
public Joueur GetDataWithName(string name)
{
int index = listJoueurs.FindIndex(x => x.Id == data.Id);
listJoueurs[index] = data;
throw new NotImplementedException();
}
public bool Update(Joueur data)
{
if (data != null)
{
int index = listJoueurs.FindIndex(x => x.Id == data.Id);
listJoueurs[index] = data;
return true;
}
return false;
}
}

@ -1,4 +1,5 @@
using BowlingLib.Model;
using Business;
using System;
using System.Collections.Generic;
using System.Linq;

@ -1,5 +1,5 @@
using BowlingLib.Model;
using BowlingLib.Interface;
using Business;
namespace BowlingStub
{
@ -7,14 +7,24 @@ namespace BowlingStub
{
private List<Partie> listParties = new List<Partie>();
public void Add(Partie data)
public bool Add(Partie data)
{
listParties.Add(data);
if (data != null)
{
listParties.Add(data);
return true;
}
return false;
}
public void Delete(Partie data)
public bool Delete(Partie data)
{
listParties.Remove(data);
if (data != null)
{
listParties.Remove(data);
return true;
}
return false;
}
public IEnumerable<Partie> GetAll()
@ -31,10 +41,25 @@ namespace BowlingStub
return listParties;
}
public void Update(Partie data)
public Partie GetDataWithId(int id)
{
throw new NotImplementedException();
}
public Partie GetDataWithName(string name)
{
int index = listParties.FindIndex(x => x.Id == data.Id);
listParties[index] = data;
throw new NotImplementedException();
}
public bool Update(Partie data)
{
if (data != null)
{
int index = listParties.FindIndex(x => x.Id == data.Id);
listParties[index] = data;
}
return false;
}
}

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\BowlingLib\BowlingLib.csproj" />
</ItemGroup>
</Project>

@ -5,13 +5,15 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BowlingLib.Interface
namespace Business
{
public interface IDataManager<Data>
{
void Add(Data data);
void Delete(Data data);
void Update(Data data);
bool Add(Data data);
bool Delete(Data data);
bool Update(Data data);
Data GetDataWithId(int id);
Data GetDataWithName(string name);
IEnumerable<Data> GetAll();
IEnumerable<Data> GetAll(int n, int j);
}

@ -0,0 +1,214 @@
using BowlingLib.Model;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Business
{
public class Manager
{
public ReadOnlyCollection<Partie> Parties { get; private set; }
private readonly List<Partie> parties = new();
public ReadOnlyCollection<Equipe> Equipes { get; private set; }
private readonly List<Equipe> equipes = new();
public ReadOnlyCollection<Joueur> Joueurs { get; private set; }
private readonly List<Joueur> joueurs = new();
public IDataManager<Joueur> JoueurDataManager => joueurDataManager;
private readonly IDataManager<Joueur> joueurDataManager;
public IDataManager<Partie> PartieDataManager => partieDataManager;
private readonly IDataManager<Partie> partieDataManager;
public IDataManager<Equipe> EquipeDataManager => equipeDataManager;
private readonly IDataManager<Equipe> equipeDataManager;
public Manager(IDataManager<Joueur> joueurManager)
{
this.joueurDataManager = joueurManager;
Joueurs = new ReadOnlyCollection<Joueur>(joueurs);
}
public Manager(IDataManager<Partie> partieDataManager)
{
this.partieDataManager = partieDataManager;
Parties = new ReadOnlyCollection<Partie>(parties);
}
public Manager(IDataManager<Equipe> equipeDataManager)
{
this.equipeDataManager = equipeDataManager;
Equipes = new ReadOnlyCollection<Equipe>(equipes);
}
/// <summary>
/// Ajoute un joueur à la liste des joueurs
/// </summary>
/// <param name="joueur"></param>
/// <returns></returns>
public bool AddJoueur(Joueur joueur)
{
if (joueurDataManager == null)
{
return false;
}
return joueurDataManager.Add(joueur);
}
/// <summary>
/// Ajoute une partie à la liste des parties
/// </summary>
/// <param name="partie"></param>
/// <returns></returns>
public bool AddPartie(Partie partie)
{
if (partieDataManager == null)
{
return false;
}
return partieDataManager.Add(partie);
}
/// <summary>
/// Ajoute une équipe à la liste des équipes
/// </summary>
/// <param name="equipe"></param>
/// <returns></returns>
public bool AddEquipe(Equipe equipe)
{
if (equipeDataManager == null)
{
return false;
}
return equipeDataManager.Add(equipe);
}
/// <summary>
/// Retourne la liste des joueurs
/// </summary>
/// <param name="joueur"></param>
public bool DeleteJoueur(Joueur joueur)
{
if (joueurDataManager == null)
{
return false;
}
return JoueurDataManager.Delete(joueur);
}
/// <summary>
/// Supprime une partie
/// </summary>
/// <param name="partie"></param>
public bool DeletePartie(Partie partie)
{
if (partieDataManager == null)
{
return false;
}
return partieDataManager.Delete(partie);
}
/// <summary>
/// Supprime une équipe
/// </summary>
/// <param name="equipe"></param>
public bool DeleteEquipe(Equipe equipe)
{
if (equipeDataManager == null)
{
return false;
}
return equipeDataManager.Delete(equipe);
}
/// <summary>
/// Retourne la liste des joueurs
/// </summary>
/// <param name="joueur"></param>
public bool UpdateJoueur(Joueur joueur)
{
if (joueurDataManager == null)
{
return false;
}
return JoueurDataManager.Update(joueur);
}
/// <summary>
/// Met à jour une partie
/// </summary>
/// <param name="partie"></param>
public bool UpdatePartie(Partie partie)
{
if (partieDataManager == null)
{
return false;
}
return partieDataManager.Update(partie);
}
/// <summary>
/// Met à jour une équipe
/// </summary>
/// <param name="equipe"></param>
public bool UpdateEquipe(Equipe equipe)
{
if (equipeDataManager == null)
{
return false;
}
return equipeDataManager.Update(equipe);
}
/// <summary>
/// Retourne la liste des joueurs
/// </summary>
/// <returns></returns>
public IEnumerable<Joueur> GetAllJoueur()
{
return JoueurDataManager.GetAll();
}
/// <summary>
/// Retourne les dernières parties du joueur
/// </summary>
/// <returns></returns>
public IEnumerable<Partie> GetAllPartie()
{
return partieDataManager.GetAll();
}
/// <summary>
/// Retourne les Equipe en fonction d'une partie
/// </summary>
/// <returns></returns>
public IEnumerable<Equipe> GetAllEquipe()
{
return equipeDataManager.GetAll();
}
//retourne le joueur avec l'id
public Joueur GetJoueurWithId(int id)
{
return JoueurDataManager.GetDataWithId(id);
}
//retourne la partie avec l'id
public Partie GetPartieWithId(int id)
{
return partieDataManager.GetDataWithId(id);
}
//retourne l'équipe avec l'id
public Equipe GetEquipeWithId(int id)
{
return equipeDataManager.GetDataWithId(id);
}
}
}

@ -13,6 +13,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BowlingAppUnitTest", "Tests
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BowlingStub", "BowlingStub\BowlingStub.csproj", "{B50615A5-ABFD-4A9C-B236-DBAEDE62AB2E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Business", "Business\Business.csproj", "{4F0C1B08-1DB7-4424-9521-EB13A858D09B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BowlingEF", "BowlingEF\BowlingEF.csproj", "{1E42224B-45E4-433C-9D20-0A61023790ED}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -35,6 +39,14 @@ Global
{B50615A5-ABFD-4A9C-B236-DBAEDE62AB2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B50615A5-ABFD-4A9C-B236-DBAEDE62AB2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B50615A5-ABFD-4A9C-B236-DBAEDE62AB2E}.Release|Any CPU.Build.0 = Release|Any CPU
{4F0C1B08-1DB7-4424-9521-EB13A858D09B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4F0C1B08-1DB7-4424-9521-EB13A858D09B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4F0C1B08-1DB7-4424-9521-EB13A858D09B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4F0C1B08-1DB7-4424-9521-EB13A858D09B}.Release|Any CPU.Build.0 = Release|Any CPU
{1E42224B-45E4-433C-9D20-0A61023790ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1E42224B-45E4-433C-9D20-0A61023790ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1E42224B-45E4-433C-9D20-0A61023790ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1E42224B-45E4-433C-9D20-0A61023790ED}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

@ -1,5 +1,6 @@
using BowlingLib.Model;
using BowlingStub;
using Business;
using System;
using System.Collections.Generic;
using System.Linq;
@ -23,7 +24,7 @@ namespace BowlingAppUnitTest
manager.AddJoueur(joueur);
//Assert
Assert.Single(manager.joueurManager.GetAll());
Assert.Single(manager.JoueurDataManager.GetAll());
}
//Test de la méthode AddPartie
@ -38,7 +39,7 @@ namespace BowlingAppUnitTest
manager.AddPartie(partie);
//Assert
Assert.Single(manager.partieManager.GetAll());
Assert.Single(manager.PartieDataManager.GetAll());
}
//Test de la méthode AddEquipe

@ -1,111 +1,111 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BowlingLib.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using BowlingLib.Model;
using BowlingStub;
using Xunit;
namespace Test.BowlingAppUnitTest
{
public class UnitTestJoueur
{
Joueur j = new Joueur("Paul");
[Fact]
public void TestConstructeur()
{
Assert.NotNull(j);
Assert.Equal("Paul", j.Pseudo);
Assert.NotEqual("joel", j.Pseudo);
}
[Fact]
public void TestInvalidJoueur()
{
Assert.Throws<ArgumentException>(() => new Joueur(null));
}
[Theory]
[InlineData(true, false, "Augustin", "Augustinn", false)]
[InlineData(true, true, "Amir", "Amir", true)]
[InlineData(false, false, "Amir", "", false)]
[InlineData(false, false, "Amir", null, false)]
[InlineData(false, false, null, null, true)]
[InlineData(false, false, null, "", false)]
[InlineData(false, false, "", null, false)]
[InlineData(false, false, "", "", true)]
[InlineData(false, false, "f2", "f2", true)]
public void TestContructeur(bool isFormated, bool isValid, string expectedPseudo, String pseudo, bool isEqual)
{
if (!isValid && !isFormated)
{
Assert.Throws<ArgumentException>(
() => new Joueur(pseudo)
);
return;
}
Joueur j = new Joueur(pseudo);
if (!isEqual)
{
Assert.NotEqual(expectedPseudo, j.Pseudo);
}
else
{
if (!isEqual)
{
Assert.NotEqual(expectedPseudo, j.Pseudo);
}
else
{
Assert.Equal(expectedPseudo, j.Pseudo);
}
}
}
//Test joueur avec stub
[Fact]
public void TestJoueurStub()
{
StubJoueur stub = new StubJoueur();
Assert.Equal(10, stub.GetAll(10).Count());
}
//tester la methode remove
[Fact]
public void TestRemove()
{
StubJoueur stub = new StubJoueur();
stub.Add(j);
stub.Delete(j);
//Compter le nombre de joueur dans un objet IEnumerable
Assert.Equal(0, stub.GetAll().Count());
}
[Fact]
public void TestUpdate()
{
StubJoueur stub = new StubJoueur();
Joueur j = new Joueur("Paul");
stub.Add(j);
j.Pseudo = "Augustin";
stub.Update(j);
Assert.Equal("Augustin", stub.GetAll().First().Pseudo);
}
}
}
using Xunit;
namespace Test.BowlingAppUnitTest
{
public class UnitTestJoueur
{
Joueur j = new Joueur("Paul");
[Fact]
public void TestConstructeur()
{
Assert.NotNull(j);
Assert.Equal("Paul", j.Pseudo);
Assert.NotEqual("joel", j.Pseudo);
}
[Fact]
public void TestInvalidJoueur()
{
Assert.Throws<ArgumentException>(() => new Joueur(null));
}
[Theory]
[InlineData(true, false, "Augustin", "Augustinn", false)]
[InlineData(true, true, "Amir", "Amir", true)]
[InlineData(false, false, "Amir", "", false)]
[InlineData(false, false, "Amir", null, false)]
[InlineData(false, false, null, null, true)]
[InlineData(false, false, null, "", false)]
[InlineData(false, false, "", null, false)]
[InlineData(false, false, "", "", true)]
[InlineData(false, false, "f2", "f2", true)]
public void TestContructeur(bool isFormated, bool isValid, string expectedPseudo, String pseudo, bool isEqual)
{
if (!isValid && !isFormated)
{
Assert.Throws<ArgumentException>(
() => new Joueur(pseudo)
);
return;
}
Joueur j = new Joueur(pseudo);
if (!isEqual)
{
Assert.NotEqual(expectedPseudo, j.Pseudo);
}
else
{
if (!isEqual)
{
Assert.NotEqual(expectedPseudo, j.Pseudo);
}
else
{
Assert.Equal(expectedPseudo, j.Pseudo);
}
}
}
//Test joueur avec stub
[Fact]
public void TestJoueurStub()
{
StubJoueur stub = new StubJoueur();
Assert.Equal(10, stub.GetAll(10).Count());
}
//tester la methode remove
[Fact]
public void TestRemove()
{
StubJoueur stub = new StubJoueur();
stub.Add(j);
stub.Delete(j);
//Compter le nombre de joueur dans un objet IEnumerable
Assert.Equal(0, stub.GetAll().Count());
}
[Fact]
public void TestUpdate()
{
StubJoueur stub = new StubJoueur();
Joueur j = new Joueur("Paul");
stub.Add(j);
j.Pseudo = "Augustin";
stub.Update(j);
Assert.Equal("Augustin", stub.GetAll().First().Pseudo);
}
}
}

Loading…
Cancel
Save