public void hand_should_be_identified_as_highcard_if_not_matching_identifiers() { var handIdentifier = new TexasHoldemHandIdentifier(); handIdentifier.HandIndentifiers = new List<ITexasHoldemHandIdentifier>(); var identifiedHand = handIdentifier.Identify(_validHand); identifiedHand.ShouldEqual(TexasHoldemHand.HighCard); }
public void should_have_a_default_list_of_identifiers_in_rank_order() { var identifier = new TexasHoldemHandIdentifier(); identifier.HandIndentifiers.Count.ShouldEqual(9); identifier.HandIndentifiers.ElementAt(0).ShouldBeOfType(typeof(TexasHoldemRoyalFlushIdentifier)); identifier.HandIndentifiers.ElementAt(1).ShouldBeOfType(typeof(TexasHoldemStraightFlushIdentifier)); identifier.HandIndentifiers.ElementAt(2).ShouldBeOfType(typeof(TexasHoldemFourOfAKindIdentifier)); identifier.HandIndentifiers.ElementAt(3).ShouldBeOfType(typeof(TexasHoldemFullHouseIdentifier)); identifier.HandIndentifiers.ElementAt(4).ShouldBeOfType(typeof(TexasHoldemFlushIdentifier)); identifier.HandIndentifiers.ElementAt(5).ShouldBeOfType(typeof(TexasHoldemStraightIdentifier)); identifier.HandIndentifiers.ElementAt(6).ShouldBeOfType(typeof(TexasHoldemThreeOfAKindIdentifier)); identifier.HandIndentifiers.ElementAt(7).ShouldBeOfType(typeof(TexasHoldemTwoPairIdentifier)); identifier.HandIndentifiers.ElementAt(8).ShouldBeOfType(typeof(TexasHoldemOnePairIdentifier)); }
public void should_iterate_each_provided_hand_inspector_and_return_hand_type_if_matched() { var identifier1 = MockRepository.GenerateMock<ITexasHoldemHandIdentifier>(); var identifier2 = MockRepository.GenerateMock<ITexasHoldemHandIdentifier>(); var handIdentifier = new TexasHoldemHandIdentifier(); handIdentifier.HandIndentifiers = new List<ITexasHoldemHandIdentifier>() { identifier1, identifier2 }; handIdentifier.Identify(_validHand); identifier1.AssertWasCalled(i => i.IsHandOfThisType(_validHand)); identifier2.AssertWasCalled(i => i.IsHandOfThisType(_validHand)); }
public void should_be_able_to_identify_if_hand_satifies_the_condition(string handDescription, Type identifierType, bool isSatified, TexasHoldemHand expectedHand) { var handIdentifier = (ITexasHoldemHandIdentifier)Activator.CreateInstance(identifierType); var hand = GenerateHandFromDescription(handDescription); handIdentifier.IsHandOfThisType(hand).ShouldEqual(isSatified); var texasHoldemIdentifier = new TexasHoldemHandIdentifier(); var identifiedHand = TexasHoldemHand.HighCard; foreach (var identifier in texasHoldemIdentifier.HandIndentifiers) { if (identifier.IsHandOfThisType(hand)) { identifiedHand = identifier.IdentifiedHand; break; } } identifiedHand.ShouldEqual(expectedHand); }
public void should_not_inspect_other_identifiers_if_identifier_is_matched() { var identifier1 = MockRepository.GenerateMock<ITexasHoldemHandIdentifier>(); var identifier2 = MockRepository.GenerateMock<ITexasHoldemHandIdentifier>(); identifier1.Expect(x => x.IsHandOfThisType(_validHand)).Return(true); identifier1.Expect(x => x.IdentifiedHand).Return(TexasHoldemHand.FourOfAKind); var handIdentifier = new TexasHoldemHandIdentifier(); handIdentifier.HandIndentifiers = new List<ITexasHoldemHandIdentifier>() { identifier1, identifier2 }; var identifiedHand = handIdentifier.Identify(_validHand); identifier2.AssertWasNotCalled(i => i.IsHandOfThisType(_validHand)); identifiedHand.ShouldEqual(TexasHoldemHand.FourOfAKind); }
public void should_not_attempt_to_idetify_a_null_hand() { var handIdentifier = new TexasHoldemHandIdentifier(); handIdentifier.Identify(null); }
public void should_require_hand_identifier_to_be_non_null_to_do_work() { var handIdentifier = new TexasHoldemHandIdentifier(); handIdentifier.HandIndentifiers = null; handIdentifier.Identify(new Hand()); }
public void should_pass_the_identifier_a_valid_hand(string handDescription) { var handIdentifier = new TexasHoldemHandIdentifier(); _validHand.Cards.RemoveAt(1); handIdentifier.Identify(_validHand); }