You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
289 lines
8.7 KiB
289 lines
8.7 KiB
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);
|
|
}
|
|
}
|
|
} |