public void GameStateAnalyzer_AllOpponentsHavePlayed_Defense_PartnerUnknown_Null() { var pickerMock = new Mock <IPlayer>(); var partnerMock = new Mock <IPlayer>(); var playerMock = new Mock <IPlayer>(); playerMock.Setup(m => m.Cards).Returns(new List <SheepCard>()); var cardsPlayed = new Dictionary <IPlayer, SheepCard>() { { pickerMock.Object, SheepCard.QUEEN_HEARTS }, { new Mock <IPlayer>().Object, SheepCard.N8_DIAMONDS }, { partnerMock.Object, SheepCard.JACK_CLUBS } }; var trickMock = new Mock <ITrick>(); trickMock.Setup(m => m.CardsByPlayer).Returns(cardsPlayed); trickMock.Setup(m => m.IHand.Picker).Returns(pickerMock.Object); trickMock.Setup(m => m.IHand.PartnerCardEnum).Returns(SheepCard.JACK_DIAMONDS); trickMock.Setup(m => m.IHand.PresumedParnter).Returns((IPlayer)null); trickMock.Setup(m => m.IHand.IGame.PlayerCount).Returns(5); var analyzer = new GameStateAnalyzer(); var actual = analyzer.AllOpponentsHavePlayed(playerMock.Object, trickMock.Object); Assert.AreEqual(null, actual); }
public void GameStateAnalyzer_UnplayedCardsBeatPlayedCards_False() { var playerMock = new Mock <IPlayer>(); playerMock.Setup(m => m.Cards).Returns(new List <SheepCard>() { SheepCard.KING_SPADES, SheepCard.ACE_DIAMONDS, SheepCard.JACK_CLUBS, SheepCard.JACK_SPADES }); var cardsPlayed1 = new Dictionary <IPlayer, SheepCard>() { { new Mock <IPlayer>().Object, SheepCard.ACE_SPADES }, { new Mock <IPlayer>().Object, SheepCard.QUEEN_CLUBS }, { new Mock <IPlayer>().Object, SheepCard.QUEEN_SPADES }, { new Mock <IPlayer>().Object, SheepCard.QUEEN_HEARTS }, { new Mock <IPlayer>().Object, SheepCard.QUEEN_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.JACK_HEARTS }, }; var cardsPlayed2 = new Dictionary <IPlayer, SheepCard>() { { new Mock <IPlayer>().Object, SheepCard.JACK_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.N10_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.KING_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.N9_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.N8_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.N7_DIAMONDS }, }; var cardsPlayed3 = new Dictionary <IPlayer, SheepCard>() { { new Mock <IPlayer>().Object, SheepCard.N8_SPADES }, { new Mock <IPlayer>().Object, SheepCard.N7_SPADES }, { new Mock <IPlayer>().Object, SheepCard.N10_SPADES }, { new Mock <IPlayer>().Object, SheepCard.N9_SPADES } }; var trickMock1 = new Mock <ITrick>(); var trickMock2 = new Mock <ITrick>(); var trickMock3 = new Mock <ITrick>(); trickMock1.Setup(m => m.CardsByPlayer).Returns(cardsPlayed1); trickMock2.Setup(m => m.CardsByPlayer).Returns(cardsPlayed2); trickMock3.Setup(m => m.CardsByPlayer).Returns(cardsPlayed3); var allTricks = new List <ITrick>() { trickMock1.Object, trickMock2.Object, trickMock3.Object }; trickMock3.Setup(m => m.IHand.ITricks).Returns(allTricks); //Starting suite in the current trick is Spades. //All trump have been played or are in the current player's hand. //All spades have been played or are in the current player's hand except 9 and 10. var analyzer = new GameStateAnalyzer(); var actual = analyzer.UnplayedCardsBeatPlayedCards(playerMock.Object, trickMock3.Object); Assert.AreEqual(false, actual); }
public void GameStateAnalyzer_MyCardsThatCanWin_NoResults() { var playerMock = new Mock <IPlayer>(); playerMock.Setup(m => m.Cards).Returns(new List <SheepCard>() { SheepCard.KING_HEARTS, SheepCard.N8_HEARTS, SheepCard.N8_DIAMONDS, SheepCard.KING_SPADES, SheepCard.ACE_DIAMONDS, SheepCard.ACE_CLUBS }); var cardsPlayed = new Dictionary <IPlayer, SheepCard>() { { new Mock <IPlayer>().Object, SheepCard.N7_HEARTS }, { new Mock <IPlayer>().Object, SheepCard.N10_HEARTS }, { new Mock <IPlayer>().Object, SheepCard.QUEEN_CLUBS }, { new Mock <IPlayer>().Object, SheepCard.ACE_SPADES } }; var trickMock = new Mock <ITrick>(); trickMock.Setup(m => m.CardsByPlayer).Returns(cardsPlayed); var analyzer = new GameStateAnalyzer(); var actual = analyzer.ICanWinTrick(playerMock.Object, trickMock.Object); Assert.IsFalse(actual); }
public void GameStateAnalyzer_MySideWinning_Offense_ThisIsPartner_No() { var partnerCard = SheepCard.JACK_HEARTS; var pickerMock = new Mock <IPlayer>(); var playerMock = new Mock <IPlayer>(); playerMock.Setup(m => m.Cards).Returns(new List <SheepCard>() { partnerCard }); var cardsPlayed = new Dictionary <IPlayer, SheepCard>() { { new Mock <IPlayer>().Object, SheepCard.N7_HEARTS }, { new Mock <IPlayer>().Object, SheepCard.QUEEN_HEARTS }, { pickerMock.Object, SheepCard.JACK_CLUBS } }; var trickMock = new Mock <ITrick>(); trickMock.Setup(m => m.CardsByPlayer).Returns(cardsPlayed); trickMock.Setup(m => m.IHand.Picker).Returns(pickerMock.Object); trickMock.Setup(m => m.IHand.PartnerCardEnum).Returns(partnerCard); trickMock.Setup(m => m.IHand.Partner).Returns((Player)null); trickMock.Setup(m => m.IHand.PresumedParnter).Returns((Player)null); var analyzer = new GameStateAnalyzer(); var actual = analyzer.MySideWinning(playerMock.Object, trickMock.Object); Assert.AreEqual(false, actual); }
public void GameStateAnalyzer_AllOpponentsHavePlayed_Offense_PartnerProbablyKnown_No() { var partnerCard = SheepCard.JACK_HEARTS; var partnerMock = new Mock <IPlayer>(); var playerMock = new Mock <IPlayer>(); playerMock.Setup(m => m.Cards).Returns(new List <SheepCard>()); var cardsPlayed = new Dictionary <IPlayer, SheepCard>() { { new Mock <IPlayer>().Object, SheepCard.N8_DIAMONDS }, { partnerMock.Object, SheepCard.N8_SPADES }, { new Mock <IPlayer>().Object, SheepCard.JACK_DIAMONDS }, }; var trickMock = new Mock <ITrick>(); trickMock.Setup(m => m.CardsByPlayer).Returns(cardsPlayed); trickMock.Setup(m => m.IHand.Picker).Returns(playerMock.Object); trickMock.Setup(m => m.IHand.PresumedParnter).Returns(partnerMock.Object); trickMock.Setup(m => m.IHand.PartnerCardEnum).Returns(partnerCard); trickMock.Setup(m => m.IHand.Partner).Returns((IPlayer)null); trickMock.Setup(m => m.IHand.IGame.PlayerCount).Returns(5); var analyzer = new GameStateAnalyzer(); var actual = analyzer.AllOpponentsHavePlayed(playerMock.Object, trickMock.Object); Assert.AreEqual(false, actual); }
public void GameStateAnalyzer_MySideWinning_Offense_PartnerProbablyKnown_Yes() { var partnerMock = new Mock <IPlayer>(); var playerMock = new Mock <IPlayer>(); playerMock.Setup(m => m.Cards).Returns(new List <SheepCard>()); var cardsPlayed = new Dictionary <IPlayer, SheepCard>() { { new Mock <IPlayer>().Object, SheepCard.N7_HEARTS }, { new Mock <IPlayer>().Object, SheepCard.KING_HEARTS }, { partnerMock.Object, SheepCard.JACK_CLUBS } }; var trickMock = new Mock <ITrick>(); trickMock.Setup(m => m.CardsByPlayer).Returns(cardsPlayed); trickMock.Setup(m => m.IHand.Picker).Returns(playerMock.Object); trickMock.Setup(m => m.IHand.PartnerCardEnum).Returns(SheepCard.JACK_DIAMONDS); trickMock.Setup(m => m.IHand.Partner).Returns((Player)null); trickMock.Setup(m => m.IHand.PresumedParnter).Returns(partnerMock.Object); var analyzer = new GameStateAnalyzer(); var actual = analyzer.MySideWinning(playerMock.Object, trickMock.Object); Assert.AreEqual(true, actual); }
public void GameStateAnalyzer_UnplayedCardsBeatMyCards_PlayerMayPlayTrump_True() { var playerMock = new Mock <IPlayer>(); playerMock.Setup(m => m.Cards).Returns(new List <SheepCard>() { SheepCard.KING_HEARTS, SheepCard.ACE_DIAMONDS, SheepCard.N7_CLUBS, SheepCard.N9_CLUBS }); var cardsPlayed1 = new Dictionary <IPlayer, SheepCard>() { { new Mock <IPlayer>().Object, SheepCard.ACE_SPADES }, { new Mock <IPlayer>().Object, SheepCard.QUEEN_CLUBS }, { new Mock <IPlayer>().Object, SheepCard.QUEEN_SPADES }, { new Mock <IPlayer>().Object, SheepCard.QUEEN_HEARTS }, { new Mock <IPlayer>().Object, SheepCard.QUEEN_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.KING_CLUBS }, }; var cardsPlayed2 = new Dictionary <IPlayer, SheepCard>() { { new Mock <IPlayer>().Object, SheepCard.ACE_CLUBS }, { new Mock <IPlayer>().Object, SheepCard.N10_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.KING_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.N9_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.N8_DIAMONDS }, { new Mock <IPlayer>().Object, SheepCard.N7_DIAMONDS }, }; var cardsPlayed3 = new Dictionary <IPlayer, SheepCard>() { { new Mock <IPlayer>().Object, SheepCard.N8_SPADES }, { new Mock <IPlayer>().Object, SheepCard.N7_SPADES }, { new Mock <IPlayer>().Object, SheepCard.N8_CLUBS }, { new Mock <IPlayer>().Object, SheepCard.ACE_HEARTS } }; var trickMock1 = new Mock <ITrick>(); var trickMock2 = new Mock <ITrick>(); var trickMock3 = new Mock <ITrick>(); trickMock1.Setup(m => m.CardsByPlayer).Returns(cardsPlayed1); trickMock2.Setup(m => m.CardsByPlayer).Returns(cardsPlayed2); trickMock3.Setup(m => m.CardsByPlayer).Returns(cardsPlayed3); var allTricks = new List <ITrick>() { trickMock1.Object, trickMock2.Object, trickMock3.Object }; trickMock3.Setup(m => m.IHand.ITricks).Returns(allTricks); trickMock3.Setup(m => m.IsLegalAddition(It.IsAny <SheepCard>(), It.IsAny <IPlayer>())).Returns(true); //Starting suite in the current trick is Spades. //All the jacks are currently unplayed. //Jacks beat ace of diamonds. var analyzer = new GameStateAnalyzer(); var actual = analyzer.UnplayedCardsBeatMyCards(playerMock.Object, trickMock3.Object); Assert.AreEqual(true, actual); }