@Test
    public void testRetrieveCards() {
        ICardDeck deck = new CardDeckStandard();
        Card card = null;
        Card prevCard;

        for (int i = 0; i < 52; i++) {
            prevCard = card;
            assertFalse(deck.isEmpty());
            card = deck.takeCard();
            assertNotNull(card);
            assertNotSame(prevCard, card);
            assertEquals(52 - i - 1, deck.getNumberOfRemainingCards());
        }

        assertNull(deck.takeCard());
        assertTrue(deck.isEmpty());
        assertEquals(0, deck.getNumberOfRemainingCards());
    }