public void Should_have_correct_log_entry()
        {
            var subject = new SelectCardsHandler();
            var data    = subject.Run(CreateStep());

            data.Log.Last().Should().Be($"{PlayerDisplay} has selected their cards.");
        }
        public void Should_have_correct_cards(bool isHost)
        {
            var subject = new SelectCardsHandler();
            var data    = subject.Run(CreateStep(isHost));

            var cards = isHost
                ? data.HostCards
                : data.ChallengerCards;

            cards.Should().BeEquivalentTo(Cards);
        }
        public void Should_throw_CardsAlreadySelectedException(bool isHost)
        {
            var gameData = new GameData();

            if (isHost)
            {
                gameData.HostCards = Cards;
            }
            else
            {
                gameData.ChallengerCards = Cards;
            }

            var    subject = new SelectCardsHandler();
            Action act     = () => subject.ValidateAndThrow(CreateStep(isHost, gameData));

            act.Should()
            .Throw <CardsAlreadySelectedException>()
            .Where(x => x.GameData == gameData &&
                   x.IsHost == isHost);
        }