コード例 #1
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
        public void TestDealHand()
        {
            var board = new GameBoard();
            board.DealRound();

            Assert.AreEqual(1, board.Slot1.Count);
            Assert.AreEqual(1, board.Slot2.Count);
            Assert.AreEqual(1, board.Slot3.Count);
            Assert.AreEqual(1, board.Slot4.Count);
            Assert.AreEqual(1, board.Rounds);
        }
コード例 #2
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
        public void IntegrationTestPlayGame()
        {
            var board = new GameBoard();
            board.MessageEvent += board_MessageEvent;
            board.StartGame();

            Assert.IsFalse(board.CanDeal);
            Assert.IsFalse(board.CanPlay);

            Assert.AreEqual(13, board.Rounds);
            Assert.IsTrue(board.Plays > 0);
        }
コード例 #3
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
        public void TestCanPlay()
        {
            var mDeck = new Mock<IDeck<PlayingCard>>();
            mDeck.Setup(m => m.CardsLeft()).Returns(4);
            mDeck.SetupSequence(m => m.Deal())
                .Returns(new PlayingCard(PlayingCard.CardFace.Three, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Eight, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Five, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Two, PlayingCard.CardSuit.Hearts));
            var board = new GameBoard(mDeck.Object);
            board.DealRound();

            Assert.IsTrue(board.CanPlay);
        }
コード例 #4
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
        public void TestAllOneSuit()
        {
            var mDeck = new Mock<IDeck<PlayingCard>>();
            mDeck.Setup(m => m.CardsLeft()).Returns(4);
            mDeck.SetupSequence(m => m.Deal())
                .Returns(new PlayingCard(PlayingCard.CardFace.Three, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Eight, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Five, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Two, PlayingCard.CardSuit.Hearts));
            var board = new GameBoard(mDeck.Object);
            board.DealRound();

            board.Play();

            Assert.AreEqual(3, board.ClearSlotCount);
            Assert.AreEqual(1, board.Slot2.Count);
        }
コード例 #5
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
        public void TestFirstClearCardStack()
        {
            var mDeck = new Mock<IDeck<PlayingCard>>();
            mDeck.Setup(m => m.CardsLeft()).Returns(4);
            mDeck.SetupSequence(m => m.Deal())
                .Returns(new PlayingCard(PlayingCard.CardFace.Three, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Three, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Five, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Two, PlayingCard.CardSuit.Hearts));
            var board = new GameBoard(mDeck.Object);
            board.DealRound();

            board.Slot3.Pop();

            Assert.AreEqual(board.Slot3, board.FirstClearStack);
        }
コード例 #6
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
        public void TestSlot3And4ComparisonSlot4Lower()
        {
            var mDeck = new Mock<IDeck<PlayingCard>>();
            mDeck.Setup(m => m.CardsLeft()).Returns(4);
            mDeck.SetupSequence(m => m.Deal())
                .Returns(new PlayingCard(PlayingCard.CardFace.Three, PlayingCard.CardSuit.Spades))
                .Returns(new PlayingCard(PlayingCard.CardFace.Five, PlayingCard.CardSuit.Clubs))
                .Returns(new PlayingCard(PlayingCard.CardFace.Five, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Two, PlayingCard.CardSuit.Hearts));
            var board = new GameBoard(mDeck.Object);
            board.DealRound();

            board.Play();

            Assert.AreEqual(1, board.ClearSlotCount);
            Assert.AreEqual(0, board.Slot4.Count);
        }
コード例 #7
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
        public void TestMaxThirteenRounds()
        {
            var board = new GameBoard();
            for (var i = 0; i < 20; i++)
            {
                board.DealRound();
            }

            Assert.AreEqual(13, board.Rounds);
        }
コード例 #8
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
 public void TestInitialState()
 {
     var board = new GameBoard();
     Assert.IsNotNull(board.Slot1);
     Assert.IsNotNull(board.Slot2);
     Assert.IsNotNull(board.Slot3);
     Assert.IsNotNull(board.Slot4);
 }
コード例 #9
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
 public void TestHighestCardStackInitial()
 {
     var board = new GameBoard();
     Assert.IsNull(board.HighestValueCardStack);
 }
コード例 #10
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
        public void TestHighestCardStack()
        {
            var highestCard = new PlayingCard(PlayingCard.CardFace.Eight, PlayingCard.CardSuit.Hearts);

            var mDeck = new Mock<IDeck<PlayingCard>>();
            mDeck.Setup(m => m.CardsLeft()).Returns(4);
            mDeck.SetupSequence(m => m.Deal())
                .Returns(new PlayingCard(PlayingCard.CardFace.Three, PlayingCard.CardSuit.Spades))
                .Returns(new PlayingCard(PlayingCard.CardFace.Five, PlayingCard.CardSuit.Spades))
                .Returns(new PlayingCard(PlayingCard.CardFace.Five, PlayingCard.CardSuit.Spades))
                .Returns(new PlayingCard(PlayingCard.CardFace.Two, PlayingCard.CardSuit.Spades))
                .Returns(new PlayingCard(PlayingCard.CardFace.Three, PlayingCard.CardSuit.Hearts))
                .Returns(highestCard)
                .Returns(new PlayingCard(PlayingCard.CardFace.Five, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Two, PlayingCard.CardSuit.Hearts));
            var board = new GameBoard(mDeck.Object);
            board.DealRound();
            board.DealRound();

            Assert.AreEqual(highestCard, board.HighestValueCardStack.Peek());
        }
コード例 #11
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
        public void TestHasNontrivialStackOneCard()
        {
            var mDeck = new Mock<IDeck<PlayingCard>>();
            mDeck.Setup(m => m.CardsLeft()).Returns(4);
            mDeck.SetupSequence(m => m.Deal())
                .Returns(new PlayingCard(PlayingCard.CardFace.Three, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Three, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Five, PlayingCard.CardSuit.Hearts))
                .Returns(new PlayingCard(PlayingCard.CardFace.Two, PlayingCard.CardSuit.Hearts));
            var board = new GameBoard(mDeck.Object);
            board.DealRound();

            Assert.IsFalse(board.HasNontrivialStack);
        }
コード例 #12
0
ファイル: GameBoardTest.cs プロジェクト: Chane/Cards
 public void TestHasNontrivialStackInitial()
 {
     var board = new GameBoard();
     Assert.IsFalse(board.HasNontrivialStack);
 }