Example #1
0
        public void Given_ValidCard_It_Should_TopUp_Balance()
        {
            Card card = CreateValidCard();

            Assert.That(card.GetBalance() == 0);

            Assert.That(card.TopupBy(100, validPin).GetBalance(), Is.EqualTo(100));
        }
Example #2
0
        public void Given_CardHasEnoughBalance_ItShouldBeUsedByManyPlaces_AtSameTime()
        {
            Card card = CreateValidCard();

            card.TopupBy(1000, validPin);

            Parallel.Invoke(() => card.WithdrawBy(100, validPin),
                            () => card.WithdrawBy(100, validPin),
                            () => card.WithdrawBy(100, validPin),
                            () => card.WithdrawBy(100, validPin),
                            () => card.WithdrawBy(100, validPin),
                            () => card.WithdrawBy(100, validPin));

            Assert.That(card.GetBalance(), Is.EqualTo(400));
        }