TESTUnitairesurtoutelapartieEntity #54
continuous-integration/drone/push Build is passing Details

pull/58/head
Arafamamadouelaphi 3 years ago
parent a45b81ca05
commit c5a511e7f3

@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BowlingApp
{
public class Afficheur
{
public void AfficherMenu()
{
System.Console.WriteLine("Choisissez le mode de jeux :");
System.Console.WriteLine("1 - Solo ? ");
System.Console.WriteLine("2 - Indivuduelle?");
System.Console.WriteLine("3- Equipe?");
}
public static void AfficherErreur(String message)
{
Console.WriteLine($"erreur {message}");
}
public void AfficheNumFrame(int i)
{
Console.WriteLine($"Frame {i}");
}
public void InviteNom(string type)
{
Console.WriteLine($"veillez entrez le nom {type} ");
}
public void InviteNrb(string type)
{
Console.WriteLine($"veillez entrez le nombre de {type}");
}
public void InviteQuilleTombe(int i)
{
Console.WriteLine($"Entrez le nombre de quilles tombés du lancer {i}");
}
}
}

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
@ -15,5 +15,7 @@
<ItemGroup>
<ProjectReference Include="..\BowlingEF\BowlingEF.csproj" />
<ProjectReference Include="..\BowlingLib\BowlingLib.csproj" />
<ProjectReference Include="..\BowlingMaping\BowlingMaping.csproj" />
<ProjectReference Include="..\Business\Business.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,46 @@
using BowlingEF.Context;
using BowlingLib.Model;
using BowlingMaping;
using Business;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BowlingApp
{
public class JOuerEFtest
{
static void bobo(string[] args)
{
Joueur j = new Joueur("ps1");
Joueur j1 = new Joueur("ps2");
Joueur j3 = new Joueur("ps3");
IDataManager<Joueur> joueurDataManager = new JoueurDbDataManager();
IDataManager<Equipe> equipeDataManager = new EquipeDbDataManager();
IDataManager<Partie> partieDataManager = new PartieDbDataManager();
Manager manager = new Manager(equipeDataManager,partieDataManager, joueurDataManager);
Partie p = new Partie(j);
for(int i = 0; i < 10; i++)
{
Frame frame=new Frame(i+1);
Console.WriteLine("Entrer les quilles tombés");
frame.Lancer1 = new Lancer(int.Parse(Console.ReadLine()));
Console.WriteLine("Entrer les quilles tombés");
frame.Lancer2 = new Lancer(int.Parse(Console.ReadLine()));
p.AddFrame(frame);
}
manager.AddPartie(p);
}
}
}

@ -0,0 +1,109 @@
using BowlingLib.Model;
using BowlingMaping;
using Business;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BowlingApp
{
public class Match
{
public static void JeuxEnEquipe(Saissiseur saissiseur,Afficheur afficheur)
{
afficheur.InviteNrb("Equipe");
int nbrE = saissiseur.CollecteNbr();
afficheur.InviteNrb("Joueur par Equipe");
int nbrJ = saissiseur.CollecteNbr();
List<Equipe> equipes = new List<Equipe>();
for (int i = 0; i < nbrE; i++)
{
afficheur.InviteNom($"Equipe {i+1}");//Recuperer le nom de l'equipe
string Nom = saissiseur.CollecteNom();
Equipe equipe = new Equipe(Nom);
for (int j = 0; j < nbrJ; j++)
{
Console.WriteLine($"Equipe {i + 1}");
afficheur.InviteNom($"Joueur {j + 1}"); //Recuperer le nom des joueur de chaque Equipe
string nomJoueur = saissiseur.CollecteNom();
Joueur joueur = new Joueur(nomJoueur);
equipe.AjouterJoueur(joueur);
}
equipes.Add(equipe);
}
for (int i = 0; i < equipes.Count; i++)
{
for (int j = 0; j < equipes[i].Joueurs.Count; j++)
{
Joueur joueur = equipes[i].Joueurs[j];
Partie partie = new Partie(joueur);
Manager manager = new Manager(new EquipeDbDataManager(), new PartieDbDataManager(), new JoueurDbDataManager());
manager.AddJoueur(joueur);
equipes.ForEach(item => manager.AddEquipe(item));
Lancer(partie, saissiseur, afficheur);
manager.AddPartie(partie);
}
}
}
public static void JeuIndividuel(Saissiseur saissiseur, Afficheur afficheur)
{
afficheur.InviteNrb("Joueur");
int nbrj = saissiseur.CollecteNbr();
List<Joueur> joueurs = new List<Joueur>();
for (int j = 0; j < nbrj; j++)
{
afficheur.InviteNom($"Joueur {j + 1}");
string nomJoueur = saissiseur.CollecteNom();
Joueur joueur = new Joueur(nomJoueur);
joueurs.Add(joueur);
}
for (int i = 0; i < joueurs.Count; i++)
{
Joueur joueur = joueurs[i];
Partie partie = new Partie(joueur);
Manager manager = new Manager(new EquipeDbDataManager(), new PartieDbDataManager(), new JoueurDbDataManager());
manager.AddJoueur(joueur);
joueurs.ForEach(item => manager.AddJoueur(item));
Lancer(partie, saissiseur, afficheur);
manager.AddPartie(partie);
}
}
public static void JeuSolo(Saissiseur saissiseur, Afficheur afficheur)
{
afficheur.InviteNom("Joueur");
string Nom = saissiseur.CollecteNom();
Joueur joueur = new Joueur(Nom);
Partie partie = new Partie(joueur);
Manager manager = new Manager(new EquipeDbDataManager(), new PartieDbDataManager(), new JoueurDbDataManager());
manager.AddJoueur(joueur);
Lancer(partie, saissiseur, afficheur);
manager.AddPartie(partie);
}
private static void Lancer(Partie partie,Saissiseur saissiseur,Afficheur afficheur)
{
for (int i = 0; i < 10; i++)
{
afficheur.AfficheNumFrame(i + 1);
Frame frame = new Frame(i + 1);
afficheur.InviteQuilleTombe(1);
frame.Lancer1 = new Lancer(saissiseur.CollectQuilleTomber());
afficheur.InviteQuilleTombe(2);
frame.Lancer2 = new Lancer(saissiseur.CollectQuilleTomber());
partie.AddFrame(frame);
}
}
}
}

@ -1,4 +1,8 @@
using System;
using BowlingApp;
using BowlingLib.Model;
using BowlingMaping;
using Business;
using System;
namespace HelloWorldApp
{
@ -6,7 +10,26 @@ namespace HelloWorldApp
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
int choix=0;
while (choix <= 3)
{
Afficheur afficheur = new Afficheur();
Saissiseur saissiseur = new Saissiseur();
afficheur.AfficherMenu();
choix = saissiseur.CollecterReponseMenu();
switch (choix)
{
case 1:
Match.JeuSolo(saissiseur, afficheur);
break;
case 2:
Match.JeuIndividuel(saissiseur, afficheur);
break;
case 3:
Match.JeuxEnEquipe(saissiseur, afficheur);
break;
}
}
}
}
}

@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BowlingApp
{
public class Saissiseur
{
public int CollecterReponseMenu()
{
while (true)
{
try
{
int retour = int.Parse(Console.ReadLine());
return retour;
}
catch (Exception e)
{
Afficheur.AfficherErreur("de Saisie veuillez recommencer");
}
}
}
public string CollecteNom()
{
string nom = Console.ReadLine();
return nom;
}
public int CollecteNbr()
{
return CollectQuilleTomber();
}
public int CollectQuilleTomber()
{
while (true)
{
try
{
int nbr = int.Parse(Console.ReadLine());
return nbr;
}
catch (Exception e)
{
Afficheur.AfficherErreur("de Saisie veuillez recommencer");
}
}
}
}
}

Binary file not shown.

@ -17,7 +17,7 @@ namespace BowlingEF.Context
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=bowling.db");
optionsBuilder.UseSqlite("Data Source=C:\\Users\\DELL\\BowlingScoreApp\\Sources\\BowlingApp\\bowling.db");
}
}

@ -1,151 +0,0 @@
// <auto-generated />
using System;
using BowlingEF.Context;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace BowlingEF.Migrations
{
[DbContext(typeof(BowlingContext))]
[Migration("20221015045144_migration001")]
partial class migration001
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "6.0.10");
modelBuilder.Entity("BowlingEF.Entities.EquipeEntity", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Nom")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Equipes");
});
modelBuilder.Entity("BowlingEF.Entities.FrameEntity", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<bool>("IsSpare")
.HasColumnType("INTEGER");
b.Property<bool>("IsStrike")
.HasColumnType("INTEGER");
b.Property<int>("Lancer1")
.HasColumnType("INTEGER");
b.Property<int>("Lancer2")
.HasColumnType("INTEGER");
b.Property<int>("Lancer3")
.HasColumnType("INTEGER");
b.Property<int>("Numero")
.HasColumnType("INTEGER");
b.Property<long>("PartieId")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("PartieId");
b.ToTable("Frames");
});
modelBuilder.Entity("BowlingEF.Entities.JoueurEntity", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<long?>("EquipeEntityId")
.HasColumnType("INTEGER");
b.Property<string>("Pseudo")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("EquipeEntityId");
b.ToTable("Joueurs");
});
modelBuilder.Entity("BowlingEF.Entities.PartieEntity", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<long>("JoueurId")
.HasColumnType("INTEGER");
b.Property<int>("Score")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("JoueurId");
b.ToTable("Parties");
});
modelBuilder.Entity("BowlingEF.Entities.FrameEntity", b =>
{
b.HasOne("BowlingEF.Entities.PartieEntity", "Partie")
.WithMany("Frames")
.HasForeignKey("PartieId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Partie");
});
modelBuilder.Entity("BowlingEF.Entities.JoueurEntity", b =>
{
b.HasOne("BowlingEF.Entities.EquipeEntity", null)
.WithMany("Joueurs")
.HasForeignKey("EquipeEntityId");
});
modelBuilder.Entity("BowlingEF.Entities.PartieEntity", b =>
{
b.HasOne("BowlingEF.Entities.JoueurEntity", "Joueur")
.WithMany()
.HasForeignKey("JoueurId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Joueur");
});
modelBuilder.Entity("BowlingEF.Entities.EquipeEntity", b =>
{
b.Navigation("Joueurs");
});
modelBuilder.Entity("BowlingEF.Entities.PartieEntity", b =>
{
b.Navigation("Frames");
});
#pragma warning restore 612, 618
}
}
}

@ -1,119 +0,0 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BowlingEF.Migrations
{
public partial class migration001 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Equipes",
columns: table => new
{
Id = table.Column<long>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Nom = table.Column<string>(type: "TEXT", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Equipes", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Joueurs",
columns: table => new
{
Id = table.Column<long>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Pseudo = table.Column<string>(type: "TEXT", nullable: false),
EquipeEntityId = table.Column<long>(type: "INTEGER", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Joueurs", x => x.Id);
table.ForeignKey(
name: "FK_Joueurs_Equipes_EquipeEntityId",
column: x => x.EquipeEntityId,
principalTable: "Equipes",
principalColumn: "Id");
});
migrationBuilder.CreateTable(
name: "Parties",
columns: table => new
{
Id = table.Column<long>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
JoueurId = table.Column<long>(type: "INTEGER", nullable: false),
Score = table.Column<int>(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Parties", x => x.Id);
table.ForeignKey(
name: "FK_Parties_Joueurs_JoueurId",
column: x => x.JoueurId,
principalTable: "Joueurs",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Frames",
columns: table => new
{
Id = table.Column<long>(type: "INTEGER", nullable: false)
.Annotation("Sqlite:Autoincrement", true),
Numero = table.Column<int>(type: "INTEGER", nullable: false),
Lancer1 = table.Column<int>(type: "INTEGER", nullable: false),
Lancer2 = table.Column<int>(type: "INTEGER", nullable: false),
Lancer3 = table.Column<int>(type: "INTEGER", nullable: false),
IsStrike = table.Column<bool>(type: "INTEGER", nullable: false),
IsSpare = table.Column<bool>(type: "INTEGER", nullable: false),
PartieId = table.Column<long>(type: "INTEGER", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Frames", x => x.Id);
table.ForeignKey(
name: "FK_Frames_Parties_PartieId",
column: x => x.PartieId,
principalTable: "Parties",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Frames_PartieId",
table: "Frames",
column: "PartieId");
migrationBuilder.CreateIndex(
name: "IX_Joueurs_EquipeEntityId",
table: "Joueurs",
column: "EquipeEntityId");
migrationBuilder.CreateIndex(
name: "IX_Parties_JoueurId",
table: "Parties",
column: "JoueurId");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Frames");
migrationBuilder.DropTable(
name: "Parties");
migrationBuilder.DropTable(
name: "Joueurs");
migrationBuilder.DropTable(
name: "Equipes");
}
}
}

@ -1,149 +0,0 @@
// <auto-generated />
using System;
using BowlingEF.Context;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace BowlingEF.Migrations
{
[DbContext(typeof(BowlingContext))]
partial class BowlingContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder.HasAnnotation("ProductVersion", "6.0.10");
modelBuilder.Entity("BowlingEF.Entities.EquipeEntity", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<string>("Nom")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.ToTable("Equipes");
});
modelBuilder.Entity("BowlingEF.Entities.FrameEntity", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<bool>("IsSpare")
.HasColumnType("INTEGER");
b.Property<bool>("IsStrike")
.HasColumnType("INTEGER");
b.Property<int>("Lancer1")
.HasColumnType("INTEGER");
b.Property<int>("Lancer2")
.HasColumnType("INTEGER");
b.Property<int>("Lancer3")
.HasColumnType("INTEGER");
b.Property<int>("Numero")
.HasColumnType("INTEGER");
b.Property<long>("PartieId")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("PartieId");
b.ToTable("Frames");
});
modelBuilder.Entity("BowlingEF.Entities.JoueurEntity", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<long?>("EquipeEntityId")
.HasColumnType("INTEGER");
b.Property<string>("Pseudo")
.IsRequired()
.HasColumnType("TEXT");
b.HasKey("Id");
b.HasIndex("EquipeEntityId");
b.ToTable("Joueurs");
});
modelBuilder.Entity("BowlingEF.Entities.PartieEntity", b =>
{
b.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("INTEGER");
b.Property<long>("JoueurId")
.HasColumnType("INTEGER");
b.Property<int>("Score")
.HasColumnType("INTEGER");
b.HasKey("Id");
b.HasIndex("JoueurId");
b.ToTable("Parties");
});
modelBuilder.Entity("BowlingEF.Entities.FrameEntity", b =>
{
b.HasOne("BowlingEF.Entities.PartieEntity", "Partie")
.WithMany("Frames")
.HasForeignKey("PartieId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Partie");
});
modelBuilder.Entity("BowlingEF.Entities.JoueurEntity", b =>
{
b.HasOne("BowlingEF.Entities.EquipeEntity", null)
.WithMany("Joueurs")
.HasForeignKey("EquipeEntityId");
});
modelBuilder.Entity("BowlingEF.Entities.PartieEntity", b =>
{
b.HasOne("BowlingEF.Entities.JoueurEntity", "Joueur")
.WithMany()
.HasForeignKey("JoueurId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Joueur");
});
modelBuilder.Entity("BowlingEF.Entities.EquipeEntity", b =>
{
b.Navigation("Joueurs");
});
modelBuilder.Entity("BowlingEF.Entities.PartieEntity", b =>
{
b.Navigation("Frames");
});
#pragma warning restore 612, 618
}
}
}

@ -91,8 +91,11 @@ namespace BowlingMaping
using (var context = new BowlingContext())
{
JoueurEntity entity = context.Joueurs?.Find(_joueur.Id);
entity.Pseudo = _joueur.Pseudo;
result = context.SaveChanges() == 1;
if (entity!=null)
{
entity.Pseudo = _joueur.Pseudo;
result = context.SaveChanges() == 1;
}
}
return result;
}

@ -35,11 +35,11 @@ namespace BowlingStub
public void Load()
{
for (int i = 0; i < nbrJ; i++)
for (int i = 0; i < nbrE; i++)
{
this.Add(new Equipe("Equipe " + i + 1));
for (int k = 0; k < nbrE; k++)
for (int k = 0; k < nbrJ; k++)
{
listEquipes.ElementAt(i).AjouterJoueur(new Joueur("Joueur " + i + 1 + "-" + k + 1));

@ -45,6 +45,16 @@ namespace Business
Equipes = new ReadOnlyCollection<Equipe>(equipes);
}
public Manager(IDataManager<Equipe> equipeDataManager, IDataManager<Partie> partieDataManager, IDataManager<Joueur> joueurManager)
{
this.equipeDataManager = equipeDataManager;
Equipes = new ReadOnlyCollection<Equipe>(equipes);
this.partieDataManager = partieDataManager;
Parties = new ReadOnlyCollection<Partie>(parties);
this.joueurDataManager = joueurManager;
Joueurs = new ReadOnlyCollection<Joueur>(joueurs);
}
/// <summary>
/// Ajoute un joueur à la liste des joueurs
/// </summary>

@ -17,7 +17,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Business", "Business\Busine
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BowlingEF", "BowlingEF\BowlingEF.csproj", "{1E42224B-45E4-433C-9D20-0A61023790ED}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BowlingMaping", "BowlingMaping\BowlingMaping.csproj", "{874DDEF3-1FDA-4ECE-826F-F67143823544}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BowlingMaping", "BowlingMaping\BowlingMaping.csproj", "{874DDEF3-1FDA-4ECE-826F-F67143823544}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.1.2">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
</Project>

@ -0,0 +1,11 @@
namespace BowlingEFunitTest
{
public class UnitTest1
{
[Fact]
public void Test1()
{
}
}
}

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

@ -1,13 +0,0 @@
using System;
/// <summary>
///TEST EF POR LES JOUEURS
/// </summary>
public class testEFjoueur
{
public testEFjoueur()
{
}
}
Loading…
Cancel
Save