44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
using Memory.Logic;
|
|
using Memory.Data;
|
|
|
|
namespace Memory.Test
|
|
{
|
|
[TestClass]
|
|
public class GameTest
|
|
{
|
|
[TestMethod]
|
|
public void CreateDeck_20pairs_ShouldEqual40RandomCards()
|
|
{
|
|
List<Card> deck1 = Game.CreateDeck(20);
|
|
List<Card> deck2 = Game.CreateDeck(20);
|
|
Assert.IsTrue(deck1.Count == 40 && deck2.Count == 40 && !deck1.SequenceEqual(deck2));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void IncreaseScore_QuarterTime_ShouldEqual75PercentOfPoints()
|
|
{
|
|
int score = (int)(Game.MAXPOINTS * 0.75);
|
|
Game game = new(new ScoreHandler(), "test");
|
|
Thread.Sleep(Game.MAXTIME / 4);
|
|
game.IncreaseScore();
|
|
Assert.IsTrue(score - 1 <= game.Scoring.Points && score + 1 >= game.Scoring.Points);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void IncreaseScore_TooLong_ShouldEqualLowerBoundOfPoints()
|
|
{
|
|
Game game = new(new ScoreHandler(), "test");
|
|
Thread.Sleep(Game.MAXTIME);
|
|
game.IncreaseScore();
|
|
Assert.AreEqual(Game.MINPOINTS, game.Scoring.Points);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void IncreaseScore_Instant_ShouldEqualUpperBoundOfPoints()
|
|
{
|
|
Game game = new(new ScoreHandler(), "test");
|
|
game.IncreaseScore();
|
|
Assert.AreEqual(Game.MAXPOINTS, game.Scoring.Points);
|
|
}
|
|
}
|
|
} |