using Memory.Logic; using Memory.Data; namespace Memory.Test { [TestClass] public class GameTest { [TestMethod] public void CreateDeck_20pairs_ShouldEqual40RandomCards() { List deck1 = Game.CreateDeck(20); List 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); } } }