void Hand::dealNewHand(Deck &deck) { clearHand(); for (int i=0;i<5;i++) { addCard(deck.dealCard()); _drawCard.push_back(true); //new hand set draw to no for each new card } }
void testUpdateCoins() { // Test Suite Setup: Test variables struct gameState *currentState = newGame(); int currentPlayer = whoseTurn(currentState); /* * TEST: copper == 0, silver == 0, gold == 0, bonus == 0 */ // Test updateCoins(currentPlayer, currentState, 0); assertTest(currentState->coins, 0, "copper == 0, silver == 0, gold == 0, and bonus == 0"); // After Test Cleanup currentState->coins = 0; clearHand(currentPlayer, currentState); /* * TEST: copper == 1, silver == 0, gold == 0, bonus == 0 */ // Before Test Setup currentState->coins = 0; addTreasureCard(currentPlayer, currentState, 1); // Test updateCoins(currentPlayer, currentState, 0); assertTest(currentState->coins, 1, "copper == 1, silver == 0, gold == 0, and bonus == 0"); // After Test Cleanup currentState->coins = 0; clearHand(currentPlayer, currentState); /* * TEST: copper == 1, silver == 0, gold == 0, bonus == 4 */ // Before Test Setup currentState->coins = 0; addTreasureCard(currentPlayer, currentState, 1); // Test updateCoins(currentPlayer, currentState, 4); assertTest(currentState->coins, 5, "copper == 1, silver == 0, gold == 0, and bonus == 4"); // After Test Cleanup currentState->coins = 0; clearHand(currentPlayer, currentState); /* * TEST: copper == 0, silver == 1, gold == 0, bonus == 0 */ // Before Test Setup currentState->coins = 0; addTreasureCard(currentPlayer, currentState, 2); // Test updateCoins(currentPlayer, currentState, 0); assertTest(currentState->coins, 2, "copper == 0, silver == 1, gold == 0, and bonus == 0"); // After Test Cleanup currentState->coins = 0; clearHand(currentPlayer, currentState); /* * TEST: copper == 0, silver == 1, gold == 0, bonus == 5 */ // Before Test Setup addTreasureCard(currentPlayer, currentState, 2); // Test updateCoins(currentPlayer, currentState, 5); assertTest(currentState->coins, 7, "copper == 0, silver == 1, gold == 0, and bonus == 5"); // After Test Cleanup currentState->coins = 0; clearHand(currentPlayer, currentState); /* * TEST: copper == 0, silver == 0, gold == 1, bonus == 0 */ // Before Test Setup currentState->coins = 0; addTreasureCard(currentPlayer, currentState, 3); // Test updateCoins(currentPlayer, currentState, 0); assertTest(currentState->coins, 3, "copper == 0, silver == 0, gold == 1, and bonus == 0"); // After Test Cleanup currentState->coins = 0; clearHand(currentPlayer, currentState); /* * TEST: copper == 0, silver == 0, gold == 1, bonus == 7 */ // Before Test Setup currentState->coins = 0; addTreasureCard(currentPlayer, currentState, 3); // Test updateCoins(currentPlayer, currentState, 7); assertTest(currentState->coins, 10, "copper == 0, silver == 0, gold == 1, and bonus == 0"); // After Test Cleanup currentState->coins = 0; clearHand(currentPlayer, currentState); /* * TEST: copper == 1, silver == 1, gold == 1, bonus == 0 */ // Before Test Setup currentState->coins = 0; addTreasureCard(currentPlayer, currentState, 1); addTreasureCard(currentPlayer, currentState, 2); addTreasureCard(currentPlayer, currentState, 3); // Test updateCoins(currentPlayer, currentState, 0); assertTest(currentState->coins, 6, "copper == 1, silver == 1, gold == 1, and bonus == 0"); // After Test Cleanup currentState->coins = 0; clearHand(currentPlayer, currentState); /* * TEST: copper == 2, silver == 5, gold == 3, bonus == 0 */ // Before Test Setup currentState->coins = 0; addTreasureCard(currentPlayer, currentState, 1); addTreasureCard(currentPlayer, currentState, 1); addTreasureCard(currentPlayer, currentState, 2); addTreasureCard(currentPlayer, currentState, 2); addTreasureCard(currentPlayer, currentState, 2); addTreasureCard(currentPlayer, currentState, 2); addTreasureCard(currentPlayer, currentState, 2); addTreasureCard(currentPlayer, currentState, 3); addTreasureCard(currentPlayer, currentState, 3); addTreasureCard(currentPlayer, currentState, 3); // Test updateCoins(currentPlayer, currentState, 0); assertTest(currentState->coins, 21, "copper == 2, silver == 5, gold == 3, and bonus == 0"); // After Test Cleanup currentState->coins = 0; clearHand(currentPlayer, currentState); /* * TEST: copper == 3, silver == 4, gold == 3, bonus == 8 */ // Before Test Setup currentState->coins = 0; addTreasureCard(currentPlayer, currentState, 1); addTreasureCard(currentPlayer, currentState, 1); addTreasureCard(currentPlayer, currentState, 1); addTreasureCard(currentPlayer, currentState, 1); addTreasureCard(currentPlayer, currentState, 1); addTreasureCard(currentPlayer, currentState, 2); addTreasureCard(currentPlayer, currentState, 2); addTreasureCard(currentPlayer, currentState, 2); addTreasureCard(currentPlayer, currentState, 2); addTreasureCard(currentPlayer, currentState, 3); addTreasureCard(currentPlayer, currentState, 3); addTreasureCard(currentPlayer, currentState, 3); // Test updateCoins(currentPlayer, currentState, 0); assertTest(currentState->coins, 22, "copper == 5, silver == 4, gold == 3, and bonus == 8"); // After Test Cleanup currentState->coins = 0; clearHand(currentPlayer, currentState); }