public void Stalker_ability_switches_adjacent_monsters()
        {
            // Arrange
            var context = new TestContext();
            var stalker = context.CreateCard<Bhoidwood>("Bhoidwood Stalker");
            context.SetPlayerHand(stalker);
            context.SetPlayerState(Phase.Dungeon);
            var monster1 = context.GetMonsterInRank(1);
            var monster2 = context.GetMonsterInRank(2);
            context.WhenSelectingCardsSelect(monster1);

            // Act
            context.UseAbilityOf(stalker);

            // Assert
            Assert.That(context.GetMonsterInRank(1), Is.SameAs(monster2));
            Assert.That(context.GetMonsterInRank(2), Is.SameAs(monster1));
        }
        public void Looter_spoils_ability_buys_card_and_puts_on_top_of_deck()
        {
            // Arrange
            var context = new TestContext();
            var player = context.Player;
            var looter = context.CreateCard<Rapparee>("Rapparee Looter");
            context.SetPlayerHand(looter);
            context.SetPlayerState(Phase.Spoils);
            var longspear = context.GetVillageDeck(CardType.Weapon, card => card.Name == "Longspear").TopCard;
            context.WhenSelectingCardsSelect(longspear);

            // Act
            context.UseAbilityOf(looter);

            // Assert
            Assert.That(player.Deck.TopCard, Is.SameAs(longspear));
            Assert.That(player.Discard, Has.No.Member(longspear));
        }