public void ShouldStopWhenEvaluationSucceeds() { // ARRANGE var game = new Game( CardBuilder.Ace().Hearths(), CardBuilder.King().Hearths(), CardBuilder.Queen().Hearths(), CardBuilder.Jack().Hearths(), CardBuilder.Ten().Hearths()); var evaluationMock = new EvaluationMock(); evaluationMock.EvaluateReturns(new SuccessGameEvaluationResult(GameCategory.ROYAL_FLUSH, game.Cards)); var subject = new GameEvaluationChain(new IGameEvaluation[] { new WrongEvaluation(), new RightEvaluation(), evaluationMock }); // ACT subject.Evaluate(game); // ASSERT Assert.IsFalse(evaluationMock.EvaluateWasCalled); }
public static Game HearthsRoyalFlush() { return(new Game( CardBuilder.Ace().Hearths(), CardBuilder.King().Hearths(), CardBuilder.Queen().Hearths(), CardBuilder.Jack().Hearths(), CardBuilder.Ten().Hearths())); }
public void StraightFlush() { // ARRANGE var game = new Game( CardBuilder.Eight().Hearths(), CardBuilder.Seven().Hearths(), CardBuilder.Nine().Hearths(), CardBuilder.Ten().Hearths(), CardBuilder.Jack().Hearths()); // ACT new GameEvaluator().Evaluate(game); // ASSERT Assert.AreEqual(GameCategory.STRAIGHT_FLUSH, game.Category); }
public void RoyalFlush() { // ARRANGE var game = new Game( CardBuilder.Ace().Hearths(), CardBuilder.King().Hearths(), CardBuilder.Queen().Hearths(), CardBuilder.Jack().Hearths(), CardBuilder.Ten().Hearths()); // ACT new GameEvaluator().Evaluate(game); // ASSERT Assert.AreEqual(GameCategory.ROYAL_FLUSH, game.Category); }
public void ShouldReturnTrueWhenEvaluationSucceeds() { //ARRANGE var game = new Game( CardBuilder.Ace().Hearths(), CardBuilder.King().Hearths(), CardBuilder.Queen().Hearths(), CardBuilder.Jack().Hearths(), CardBuilder.Ten().Hearths()); var evaluation = new EvaluationMock(); evaluation.EvaluateReturns(new SuccessGameEvaluationResult(GameCategory.ROYAL_FLUSH, game.Cards)); var subject = new GameEvaluationCommand(evaluation); //ACT var actual = subject.Evaluate(game); //ASSERT Assert.IsTrue(actual); }
public void ShouldReturnFalseWhenEvaluationFails() { //ARRANGE var game = new Game( CardBuilder.Ace().Hearths(), CardBuilder.King().Hearths(), CardBuilder.Queen().Hearths(), CardBuilder.Jack().Hearths(), CardBuilder.Ten().Hearths()); var evaluation = new EvaluationMock(); evaluation.EvaluateReturns(new FailedGameEvaluationResult()); var subject = new GameEvaluationCommand(evaluation); //ACT var actual = subject.Evaluate(game); //ASSERT Assert.IsFalse(actual); }