public void GivenAnInvalidExpirationDate_WhenCreatingACreditCard_ThenAnExceptionIsThrown() { var builder = new CreditCard.Builder() .Numbered(VALID_CREDIT_CARD_NUMBER) .OwnedBy(VALID_CREDIT_CARD_OWNER) .ExpiresOn(-1, -1); var exception = Assert.Throws <ArgumentException>(() => builder.Build()); Assert.Equal(YearMonth.DATE_IS_INVALID_ERROR, exception.Message); }
public void GivenACurrentDateTimeHigherThanExpirationDate_WhenCreatingACreditCard_ThenAnExceptionIsThrown(int expirationYear, int expirationMonth) { var builder = new CreditCard.Builder() .Numbered(VALID_CREDIT_CARD_NUMBER) .OwnedBy(VALID_CREDIT_CARD_OWNER) .ExpiresOn(expirationYear, expirationMonth) .CheckingOn(new DateTime(VALID_YEAR, VALID_MONTH, 1)); var exception = Assert.Throws <ArgumentException>(() => builder.Build()); Assert.Equal(CreditCard.CARD_HAS_EXPIRED_ERROR, exception.Message); }
public void GivenAnInvalidOwner_WhenCreatingACreditCard_ThenAnExceptionIsThrown(string invalidName) { var builder = new CreditCard.Builder() .Numbered(VALID_CREDIT_CARD_NUMBER) .OwnedBy(invalidName) .ExpiresOn(2020, 12) .CheckingOn(2020, 4); var exception = Assert.Throws <ArgumentException>(() => builder.Build()); Assert.Equal(CreditCard.OWNER_IS_INVALID_ERROR, exception.Message); }
public void GivenAnExpirationYearMonth_WhenCreatingACreditCard_ThenReturnsIt() { var yearMonth = new YearMonth(2020, 4); var creditCard = new CreditCard.Builder() .Numbered(VALID_CREDIT_CARD_NUMBER) .OwnedBy(VALID_CREDIT_CARD_OWNER) .ExpiresOn(yearMonth) .Build(); Assert.NotNull(creditCard); Assert.Equal(2020, creditCard.ExpirationDate.Year); Assert.Equal(4, creditCard.ExpirationDate.Month); }
public void GivenACurrentDateEqualOrLowerThanExpirationDate_WhenCreatingAYearMonth_ThenReturnsIt(string owner, int expirationYear, int expirationMonth) { var creditCard = new CreditCard.Builder() .Numbered(VALID_CREDIT_CARD_NUMBER) .OwnedBy(owner) .ExpiresOn(expirationYear, expirationMonth) .CheckingOn(VALID_YEAR, VALID_MONTH) .Build(); Assert.NotNull(creditCard); Assert.Equal(VALID_CREDIT_CARD_NUMBER, creditCard.Number); Assert.Equal(owner, creditCard.Owner); Assert.Equal(expirationYear, creditCard.ExpirationDate.Year); Assert.Equal(expirationMonth, creditCard.ExpirationDate.Month); }
public string Checkout(string cartId, string number, string expirationDate, string owner) { var session = GetValidSession(cartId); var creditCard = new CreditCard.Builder() .ExpiresOn(new YearMonth(expirationDate)) .CheckingOn(_internalClock.GetDateTime()) .Numbered(number) .OwnedBy(owner) .Build(); var cashier = new Cashier(_pricelist, _merchantAdapter); var transactionId = cashier.Checkout(session.Cart, creditCard); GetBalanceSheetFor(session.ClientId) .AddRange(cashier.GetDaybook()); return(transactionId); }