com
continuous-integration/drone/push Build is passing Details

pull/14/head
Victor Perez NGOUNOU 2 years ago
parent 2af52034b6
commit 4083afdaa1

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

@ -66,15 +66,12 @@ namespace BowlingApi.Controllers
// GET: api/Partie/djon
[HttpGet("{id}")]
public async Task<IActionResult> Get(int id)
public async Task<IActionResult> Get(long id)
{
// return Ok(_partieService.GetDataWithName(name));
try
{
if (id == null)
return BadRequest("Le nom de la partie est obligatoire");
if (id <= 0)
return BadRequest("id est obligatoire");
var result = _partieService.GetDataWithId(id).Result;
if (result == null)

@ -56,6 +56,7 @@ builder.Services.AddLogging(configure =>
{
configure.AddConsole();
configure.AddDebug();
configure.AddEventSourceLogger();
});
var app = builder.Build();

@ -7,8 +7,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BowlingLib", "BowlingLib\Bo
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{C75DF644-C41F-4A08-8B69-C8554204AC72}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BowlingAppUnitTest", "Tests\BowlingAppUnitTest\BowlingAppUnitTest.csproj", "{F9B12DFD-EF58-429F-9344-70DFC10EC6E5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BowlingStub", "BowlingStub\BowlingStub.csproj", "{B50615A5-ABFD-4A9C-B236-DBAEDE62AB2E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BowlingEF", "BowlingEF\BowlingEF.csproj", "{1E42224B-45E4-433C-9D20-0A61023790ED}"
@ -49,10 +47,6 @@ Global
{48BBA997-E63D-48BB-BB2A-538457425F02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{48BBA997-E63D-48BB-BB2A-538457425F02}.Release|Any CPU.ActiveCfg = Release|Any CPU
{48BBA997-E63D-48BB-BB2A-538457425F02}.Release|Any CPU.Build.0 = Release|Any CPU
{F9B12DFD-EF58-429F-9344-70DFC10EC6E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F9B12DFD-EF58-429F-9344-70DFC10EC6E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F9B12DFD-EF58-429F-9344-70DFC10EC6E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F9B12DFD-EF58-429F-9344-70DFC10EC6E5}.Release|Any CPU.Build.0 = Release|Any CPU
{B50615A5-ABFD-4A9C-B236-DBAEDE62AB2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{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
@ -98,7 +92,6 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{F9B12DFD-EF58-429F-9344-70DFC10EC6E5} = {C75DF644-C41F-4A08-8B69-C8554204AC72}
{1E42224B-45E4-433C-9D20-0A61023790ED} = {3A947347-92D9-47A2-A5B8-B1254B018410}
{874DDEF3-1FDA-4ECE-826F-F67143823544} = {5B1EBEE8-2C57-4082-84B8-0F4B7855FCD0}
{E9350F3C-4E54-46C3-9C2D-0724C6DDF154} = {A67CAE01-FD47-4EFC-A226-0E23403693F4}

@ -1,27 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="FsCheck" Version="2.16.5" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<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>
<ItemGroup>
<ProjectReference Include="..\..\BowlingLib\BowlingLib.csproj" />
<ProjectReference Include="..\..\BowlingStub\BowlingStub.csproj" />
</ItemGroup>
</Project>

@ -1,25 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 25.0.1704.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BowlingAppUnitTest", "BowlingAppUnitTest.csproj", "{6CE80C57-58B9-4481-B4EE-1DD615117D93}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6CE80C57-58B9-4481-B4EE-1DD615117D93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CE80C57-58B9-4481-B4EE-1DD615117D93}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CE80C57-58B9-4481-B4EE-1DD615117D93}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CE80C57-58B9-4481-B4EE-1DD615117D93}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {977E7E9D-643B-4F31-B0F3-229032EB3B68}
EndGlobalSection
EndGlobal

@ -1,86 +0,0 @@
using BowlingLib.Model;
using System;
using System.Collections.Generic;
namespace Test.BowlingAppUnitTest
{
public static class TestData
{
public static IEnumerable<object[]> Data_AddJoueurToEquipe()
{
yield return new object[]
{
1,
new Joueur[]
{
new Joueur("Alys"),
new Joueur("Bénita"),
new Joueur("Regis"),
new Joueur("Mania"),
new Joueur("Augustin")
},
new Joueur[]
{
new Joueur("Augustin")
},
new Equipe("ABRMC",
new Joueur("Alys"),
new Joueur("Bénita"),
new Joueur("Regis"),
new Joueur("Mania")),
new Joueur("Augustin")
};
yield return new object[]
{
2,
new Joueur[]
{
new Joueur("Alys"),
new Joueur("Bénita"),
new Joueur("Regis"),
new Joueur("Mania"),
new Joueur("Augustin")
},
new Joueur[]
{
new Joueur("Mania"),
new Joueur("Augustin")
},
new Equipe("ABRMC",
new Joueur("Alys"),
new Joueur("Bénita"),
new Joueur("Regis")),
new Joueur("Mania"),
new Joueur("Alys"),
new Joueur("Augustin")
};
yield return new object[]
{
1,
new Joueur[]
{
new Joueur("Alys"),
new Joueur("Bénita"),
new Joueur("Regis"),
new Joueur("Mania"),
new Joueur("Augustin")
},
new Joueur[]
{
new Joueur("Augustin")
},
new Equipe("ABRMC",
new Joueur("Alys"),
new Joueur("Bénita"),
new Joueur("Regis"),
new Joueur("Mania")),
new Joueur("Augustin"),
new Joueur("Augustin")
};
}
}
}

@ -1,104 +0,0 @@
using BowlingLib.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xunit;
namespace BowlingAppUnitTest
{
public class UTFrame
{
[Fact]
public void TestFrame()
{
Frame frame = new Frame(1);
Assert.Equal(1, frame.Numero);
Assert.Equal(10, frame.QuillesRestantes);
Assert.Equal(0, frame.QuillesTombees);
Assert.False(frame.IsStrike);
Assert.False(frame.IsSpare);
}
[Fact]
public void TestLancer()
{
Frame frame = new Frame(1);
frame.Lancer(5);
Assert.Equal(5, frame.QuillesTombees);
Assert.Equal(5, frame.QuillesRestantes);
Assert.False(frame.IsStrike);
Assert.False(frame.IsSpare);
}
[Fact]
public void TestLancer2()
{
Frame frame = new Frame(1);
frame.Lancer(10);
Assert.Equal(10, frame.QuillesTombees);
Assert.Equal(0, frame.QuillesRestantes);
Assert.True(frame.IsStrike);
Assert.False(frame.IsSpare);
}
[Fact]
public void TestLancer3()
{
Frame frame = new Frame(1);
frame.Lancer(5);
frame.Lancer(5);
Assert.Equal(10, frame.QuillesTombees);
Assert.Equal(0, frame.QuillesRestantes);
Assert.False(frame.IsStrike);
Assert.True(frame.IsSpare);
}
//test Avec un lancé négatif
[Fact]
public void TestLancer4()
{
Frame frame = new Frame(1);
Assert.Throws<ArgumentException>(() => frame.Lancer(-5));
}
//test Avec un lancé supérieur à 10
[Fact]
public void TestLancer5()
{
Frame frame = new Frame(1);
Assert.Throws<ArgumentException>(() => frame.Lancer(15));
}
//test avec le deuxième lancé du dernier frame est un strike
[Fact]
public void TestLancer6()
{
Frame frame = new Frame(10);
frame.Lancer(0);
frame.Lancer(10);
Assert.False(frame.IsStrike);
}
//test avec le deuxième lancé du dernier frame est un spare
[Fact]
public void TestLancer7()
{
Frame frame = new Frame(10);
frame.Lancer(5);
frame.Lancer(5);
Assert.True(frame.IsSpare);
}
//[Fact]
//public void TestLancer8()
//{
// Frame frame = new Frame(10);
// frame.Lancer(0);
// frame.Lancer(10);
// frame.Lancer(10);
// Assert.True(frame.IsStrike);
//}
}
}

@ -1,289 +0,0 @@
using BowlingLib.Model;
using BowlingStub;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xunit;
namespace BowlingAppUnitTest
{
public class UTPartie
{
//le cas ou le joueur ne fait que des strikes
[Fact]
public void TestGetScore()
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
partie.AddFrame(new Frame(3));
partie.AddFrame(new Frame(4));
partie.AddFrame(new Frame(5));
partie.AddFrame(new Frame(6));
partie.AddFrame(new Frame(7));
partie.AddFrame(new Frame(8));
partie.AddFrame(new Frame(9));
partie.AddFrame(new Frame(10));
for (int i = 0; i < partie.Frames.Count; i++)
{
partie.Frames[i].Lancer(10);
if (i==9)
{
partie.Frames[i].Lancer(10);
}
}
//Act
int? score = partie.GetScore();
//Assert
Assert.Equal(300, score);
}
//le cas ou le joueur fait que des spares
[Fact]
public void TestGetScore2()
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
partie.AddFrame(new Frame(3));
partie.AddFrame(new Frame(4));
partie.AddFrame(new Frame(5));
partie.AddFrame(new Frame(6));
partie.AddFrame(new Frame(7));
partie.AddFrame(new Frame(8));
partie.AddFrame(new Frame(9));
partie.AddFrame(new Frame(10));
for (int i = 0; i < partie.Frames.Count; i++)
{
partie.Frames[i].Lancer(5);
partie.Frames[i].Lancer(5);
if (i == 9)
{
partie.Frames[i].Lancer(5);
}
}
//Act
int? score = partie.GetScore();
//Assert
Assert.Equal(150, score);
}
//le cas ou le joueur fait que des spares et des strikes
[Fact]
public void TestGetScore3()
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
partie.AddFrame(new Frame(3));
partie.AddFrame(new Frame(4));
partie.AddFrame(new Frame(5));
partie.AddFrame(new Frame(6));
partie.AddFrame(new Frame(7));
partie.AddFrame(new Frame(8));
partie.AddFrame(new Frame(9));
partie.AddFrame(new Frame(10));
for (int i = 0; i < partie.Frames.Count; i++)
{
if (i % 2 == 0)
{
partie.Frames[i].Lancer(10);
}
else
{
partie.Frames[i].Lancer(5);
partie.Frames[i].Lancer(5);
if (i==9)
{
partie.Frames[i].Lancer(5);
}
}
}
//Act
int? score = partie.GetScore();
//Assert
Assert.Equal(200, score);
}
//le cas ou le joueur ne fait aucun strike ou spare
[Fact]
public void TestGetScore4()
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
partie.AddFrame(new Frame(3));
partie.AddFrame(new Frame(4));
partie.AddFrame(new Frame(5));
partie.AddFrame(new Frame(6));
partie.AddFrame(new Frame(7));
partie.AddFrame(new Frame(8));
partie.AddFrame(new Frame(9));
partie.AddFrame(new Frame(10));
for (int i = 0; i < partie.Frames.Count; i++)
{
partie.Frames[i].Lancer(5);
partie.Frames[i].Lancer(4);
}
//Act
int? score = partie.GetScore();
//Assert
Assert.Equal(90, score);
}
//le cas ou le joueur fait un strike au dernier lancer
[Fact]
public void TestGetScore5()
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
partie.AddFrame(new Frame(3));
partie.AddFrame(new Frame(4));
partie.AddFrame(new Frame(5));
partie.AddFrame(new Frame(6));
partie.AddFrame(new Frame(7));
partie.AddFrame(new Frame(8));
partie.AddFrame(new Frame(9));
partie.AddFrame(new Frame(10));
for (int i = 0; i < partie.Frames.Count; i++)
{
if (i < 9)
{
partie.Frames[i].Lancer(5);
partie.Frames[i].Lancer(4);
continue;
}
partie.Frames[i].Lancer(10);
if (partie.Frames[i].IsStrike)
{
partie.Frames[i].Lancer(5);
partie.Frames[i].Lancer(4);
}
}
//Act
int? score = partie.GetScore();
//Assert
Assert.Equal(100, score);
}
//le cas ou le joueur fait un spare au deuxieme lancer du dernier frame
[Fact]
public void TestGetScore6()
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.AddFrame(new Frame(2));
partie.AddFrame(new Frame(3));
partie.AddFrame(new Frame(4));
partie.AddFrame(new Frame(5));
partie.AddFrame(new Frame(6));
partie.AddFrame(new Frame(7));
partie.AddFrame(new Frame(8));
partie.AddFrame(new Frame(9));
partie.AddFrame(new Frame(10));
for (int i = 0; i < partie.Frames.Count; i++)
{
if (i < 9)
{
partie.Frames[i].Lancer(5);
partie.Frames[i].Lancer(4);
continue;
}
partie.Frames[i].Lancer(5);
partie.Frames[i].Lancer(5);
if (partie.Frames[i].IsSpare)
{
partie.Frames[i].Lancer(5);
}
}
//Act
int? score = partie.GetScore();
//Assert
Assert.Equal(96, score);
}
//le cas ou le nombre de lancer est atteind 2 eme frames
[Fact]
public void TestGetScore7()
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.Frames[0].Lancer(5);
partie.Frames[0].Lancer(5);
Assert.Throws<ArgumentException>
(() => partie.Frames[0].Lancer(5));
}
//le cas ou les lancer sont finis
[Fact]
public void TestGetScore8()
{
//Arrange
StubPartie stubPartie = new StubPartie();
IEnumerable<Partie> listParties = stubPartie.GetAllPartie(1);
Partie partie = listParties.ElementAt(0);
partie.AddFrame(new Frame(1));
partie.Frames[0].Lancer(5);
partie.Frames[0].Lancer(5);
Assert.True(partie.Frames[0].IsFinished);
}
}
}

@ -1,90 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BowlingLib.Model;
using Xunit;
namespace Test.BowlingAppUnitTest
{
public class UnitTestEquipe
{
public static IEnumerable<object[]> Data_AddJoueurToEquipe()
{
yield return new object[]
{
true,
new Joueur[]
{
new Joueur("Alys"),
new Joueur("Bénita"),
new Joueur("Regis"),
new Joueur("Mania"),
new Joueur("Cornelle")
},
new Equipe("ABRMC",
new Joueur("Alys"),
new Joueur("Bénita"),
new Joueur("Regis"),
new Joueur("Mania")),
new Joueur("Cornelle")
};
yield return new object[]
{
false,
new Joueur[]
{
new Joueur("Alys"),
new Joueur("Bénita"),
new Joueur("Regis"),
new Joueur("Mania")
},
new Equipe("ABRMC",
new Joueur("Alys"),
new Joueur("Bénita"),
new Joueur("Regis"),
new Joueur("Mania")),
new Joueur("Mania")
};
}
[Theory]
[MemberData(nameof(Data_AddJoueurToEquipe))]
public void Test_AddJoueurToEquipe(bool expectedResult,
IEnumerable<Joueur> expectedJoueurs,
Equipe equipe,
Joueur joueur)
{
bool result = equipe.AjouterJoueur(joueur);
Assert.Equal(expectedResult, result);
Assert.Equal(expectedJoueurs.Count(), equipe.Joueurs.Count());
Assert.All(expectedJoueurs, j => equipe.Joueurs.Contains(j));
}
[Theory]
[MemberData(nameof(TestData.Data_AddJoueurToEquipe), MemberType=typeof(TestData))]
public void Test_AddJoueursToEquipe(int expectedResult,
IEnumerable<Joueur> expectedJoueurs,
IEnumerable<Joueur> expectedAddedJoueurs,
Equipe equipe,
params Joueur[] joueursToAdd)
{
var addedJoueurs = equipe.AjouterJoueurs(joueursToAdd);
Assert.Equal(expectedResult, addedJoueurs.Count());
Assert.All(expectedAddedJoueurs, a => addedJoueurs.Contains(a));
Assert.Equal(expectedJoueurs.Count(), equipe.Joueurs.Count());
Assert.All(expectedJoueurs, a => equipe.Joueurs.Contains(a));
}
}
}

@ -1,116 +0,0 @@
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);
}
//si l text n est
[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)
{// formated:
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);
// }
if (isEqual)
{
Assert.Equal(expectedPseudo, j.Pseudo);
}
}
//Test joueur avec stub
[Fact]
public void TestJoueurStub()
{
StubJoueur stub = new StubJoueur();
Assert.Equal(10, stub.GetAllJoueur(10).Result.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().Result.Count());
}
/*
* TEST AVEC LE STUB
*/
[Fact]
public void TestUpdate()
{
StubJoueur stub = new StubJoueur();
Joueur j = new Joueur("Paul");
stub.Add(j);
j.setNom("Augustin");
stub.Update(j);
Assert.Equal("Augustin", stub.GetAll().Result.First().Pseudo);
}
}
}
Loading…
Cancel
Save