public void GoldCardMayHaveNegativeCredit()
        {
            int      cardId   = 1;
            string   name     = "Customer1";
            string   address  = "Address1";
            string   city     = "City1";
            decimal  credit   = 100;
            decimal  toPay    = credit + 1000;
            decimal  discount = 10;
            GoldCard card     = new GoldCard(cardId, name, address, city, credit, discount);

            card.Pay(toPay);
            Assert.IsTrue(card.Credit < 0);
        }
        public void GoldCard_WhenPaying_DiscountIsConsidered()
        {
            int      cardId         = 1;
            string   name           = "Customer1";
            string   address        = "Address1";
            string   city           = "City1";
            decimal  credit         = 100;
            decimal  toPay          = 10;
            decimal  discount       = 10;
            decimal  expectedToPay  = toPay - (toPay * discount / 100);
            decimal  expectedCredit = credit - expectedToPay;
            GoldCard card           = new GoldCard(cardId, name, address, city, credit, discount);

            card.Pay(toPay);
            Assert.AreEqual(expectedCredit, card.Credit);
        }