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_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_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);
 }