From 4083afdaa1079ea9269fc7682bb608c46c730dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Victor=20P=C3=A9rez=20Ngounou?= Date: Sat, 11 Feb 2023 15:30:11 +0100 Subject: [PATCH] com --- Documentation/doc_images/Architecture.png | Bin 0 -> 120586 bytes .../Controllers/PartieController.cs | 9 +- Sources/BowlingApi/Program.cs | 1 + Sources/Solution.sln | 7 - .../BowlingAppUnitTest.csproj | 27 -- .../BowlingAppUnitTest/BowlingAppUnitTest.sln | 25 -- Sources/Tests/BowlingAppUnitTest/TestData.cs | 86 ------ Sources/Tests/BowlingAppUnitTest/UTFrame.cs | 104 ------- Sources/Tests/BowlingAppUnitTest/UTPartie.cs | 289 ------------------ .../Tests/BowlingAppUnitTest/UTestEquipe.cs | 90 ------ .../BowlingAppUnitTest/UnitTestJoueur.cs | 116 ------- 11 files changed, 4 insertions(+), 750 deletions(-) create mode 100644 Documentation/doc_images/Architecture.png delete mode 100644 Sources/Tests/BowlingAppUnitTest/BowlingAppUnitTest.csproj delete mode 100644 Sources/Tests/BowlingAppUnitTest/BowlingAppUnitTest.sln delete mode 100644 Sources/Tests/BowlingAppUnitTest/TestData.cs delete mode 100644 Sources/Tests/BowlingAppUnitTest/UTFrame.cs delete mode 100644 Sources/Tests/BowlingAppUnitTest/UTPartie.cs delete mode 100644 Sources/Tests/BowlingAppUnitTest/UTestEquipe.cs delete mode 100644 Sources/Tests/BowlingAppUnitTest/UnitTestJoueur.cs diff --git a/Documentation/doc_images/Architecture.png b/Documentation/doc_images/Architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..8e2fa7317e475f8f88f7def32d664116b876b541 GIT binary patch literal 120586 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 Tn Get(int id) + public async Task 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) diff --git a/Sources/BowlingApi/Program.cs b/Sources/BowlingApi/Program.cs index 679859f..7aa9b45 100644 --- a/Sources/BowlingApi/Program.cs +++ b/Sources/BowlingApi/Program.cs @@ -56,6 +56,7 @@ builder.Services.AddLogging(configure => { configure.AddConsole(); configure.AddDebug(); + configure.AddEventSourceLogger(); }); var app = builder.Build(); diff --git a/Sources/Solution.sln b/Sources/Solution.sln index 9e454a2..93742af 100644 --- a/Sources/Solution.sln +++ b/Sources/Solution.sln @@ -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} diff --git a/Sources/Tests/BowlingAppUnitTest/BowlingAppUnitTest.csproj b/Sources/Tests/BowlingAppUnitTest/BowlingAppUnitTest.csproj deleted file mode 100644 index 317f14e..0000000 --- a/Sources/Tests/BowlingAppUnitTest/BowlingAppUnitTest.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - - net6.0 - - false - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - diff --git a/Sources/Tests/BowlingAppUnitTest/BowlingAppUnitTest.sln b/Sources/Tests/BowlingAppUnitTest/BowlingAppUnitTest.sln deleted file mode 100644 index 48ab595..0000000 --- a/Sources/Tests/BowlingAppUnitTest/BowlingAppUnitTest.sln +++ /dev/null @@ -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 diff --git a/Sources/Tests/BowlingAppUnitTest/TestData.cs b/Sources/Tests/BowlingAppUnitTest/TestData.cs deleted file mode 100644 index fc17175..0000000 --- a/Sources/Tests/BowlingAppUnitTest/TestData.cs +++ /dev/null @@ -1,86 +0,0 @@ -using BowlingLib.Model; -using System; -using System.Collections.Generic; - -namespace Test.BowlingAppUnitTest -{ - public static class TestData - { - public static IEnumerable 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") - }; - } - } -} diff --git a/Sources/Tests/BowlingAppUnitTest/UTFrame.cs b/Sources/Tests/BowlingAppUnitTest/UTFrame.cs deleted file mode 100644 index 4744d9e..0000000 --- a/Sources/Tests/BowlingAppUnitTest/UTFrame.cs +++ /dev/null @@ -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(() => frame.Lancer(-5)); - } - - //test Avec un lancé supérieur à 10 - [Fact] - public void TestLancer5() - { - Frame frame = new Frame(1); - Assert.Throws(() => 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); - //} - } -} diff --git a/Sources/Tests/BowlingAppUnitTest/UTPartie.cs b/Sources/Tests/BowlingAppUnitTest/UTPartie.cs deleted file mode 100644 index f1be3fc..0000000 --- a/Sources/Tests/BowlingAppUnitTest/UTPartie.cs +++ /dev/null @@ -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 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 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 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 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 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 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 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 - (() => partie.Frames[0].Lancer(5)); - } - - //le cas ou les lancer sont finis - - [Fact] - - public void TestGetScore8() - { - //Arrange - StubPartie stubPartie = new StubPartie(); - IEnumerable 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); - } - } -} \ No newline at end of file diff --git a/Sources/Tests/BowlingAppUnitTest/UTestEquipe.cs b/Sources/Tests/BowlingAppUnitTest/UTestEquipe.cs deleted file mode 100644 index 6e29eed..0000000 --- a/Sources/Tests/BowlingAppUnitTest/UTestEquipe.cs +++ /dev/null @@ -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 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 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 expectedJoueurs, - IEnumerable 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)); - } - - - } -} diff --git a/Sources/Tests/BowlingAppUnitTest/UnitTestJoueur.cs b/Sources/Tests/BowlingAppUnitTest/UnitTestJoueur.cs deleted file mode 100644 index ff4b910..0000000 --- a/Sources/Tests/BowlingAppUnitTest/UnitTestJoueur.cs +++ /dev/null @@ -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(() => 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 - ( - () => 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); - } - - - - - } -} -