private static TrickPile CreateTrickPileWithSixClubs(FollowSuit sut, Trump trump) { var trickPile = new TrickPile(sut, trump); trickPile.Push(new Card(Stub.Ranks.Six, Stub.Suits.Clubs), PilePosition.Default); return(trickPile); }
public void Any_card_could_be_played_when_trick_pile_is_empty(FollowSuit sut) { var trickPile = new TrickPile(sut, Trump.NoTrump()); var hand = CreateHandWithCards(Stub.Suits.Clubs); var card = hand.CardsInPile[0]; var result = sut.Play(trickPile, hand, card); Assert.AreEqual(FollowSuitPlayResult.Played, result); }
public void Play_other_trump_suit_when_cannot_follow_suit(string followSuit) { var sut = FollowSuit.FromName(followSuit); var trickPile = CreateTrickPileWithSixClubs(sut, Trump.Static(Stub.Suits.Spades)); var hand = CreateHandWithCards(Stub.Suits.Hearts, Stub.Suits.Spades); var otherTrumpSuitCard = hand.CardsInPile[1]; var result = sut.Play(trickPile, hand, otherTrumpSuitCard); Assert.AreEqual(FollowSuitPlayResult.Ruff, result); }
public void Play_trump_suit_when_pile_has_only_trumps(string followSuit) { var sut = FollowSuit.FromName(followSuit); var trickPile = CreateTrickPileWithSixClubs(sut, Trump.Static(Stub.Suits.Clubs)); var hand = CreateHandWithCards(Stub.Suits.Clubs, Stub.Suits.Hearts); var sameSuitCard = hand.CardsInPile[0]; var result = sut.Play(trickPile, hand, sameSuitCard); Assert.AreEqual(FollowSuitPlayResult.Played, result); }
public TrickPile(FollowSuit followSuit, Trump trump) { _followSuit = followSuit; _trump = trump; }