public void GetCreditCardWithCurrentAndNextBills_NoBillExistingBefore() { // Arrange MonthYear monthYear = MonthYear.Create(2018, 4); int creditCardId = testsUtils.AddSingleCreditCard().Id; var sut = new CreditCardController(new CreditCardRepository(dbUtils.DbContext)); // Act var creditCardList = sut.GetList(monthYear); // Assert Assert.Equal(1, creditCardList.Count); CreditCardBill currentBill = creditCardList.First().GetCurrentBill(monthYear); Assert.True(currentBill.Id > 0); Assert.Equal(TestsUtils.CLOSING_DAY, currentBill.ClosingDay); Assert.Equal(creditCardId, currentBill.CreditCard.Id); Assert.Equal(0, currentBill.Statements.Count); CreditCardBill nextBill = creditCardList.First().GetNextBill(monthYear); Assert.True(nextBill.Id > 0); Assert.Equal(TestsUtils.CLOSING_DAY, nextBill.ClosingDay); Assert.Equal(creditCardId, nextBill.CreditCard.Id); Assert.Equal(0, nextBill.Statements.Count); }
public void GetCreditCardWithCurrentAndNextBills_RecoveryExistingBills() { // Arrange MonthYear monthYear = MonthYear.Create(2018, 4); DbCreditCardDto creditCard = testsUtils.AddSingleCreditCard(); var bill = new DbCreditCardBillDto() { CreditCardId = creditCard.Id, ClosingDay = TestsUtils.CLOSING_DAY + 1, DueDate = monthYear.GetFirstDay(), CategoryId = creditCard.CategoryId }; dbUtils.Insert(bill); var statement = new DbCreditCardStatementDto() { BillId = bill.Id, Amount = 100m, BuyDate = DateTime.Parse("2018-05-05"), Description = "test credit card statement" }; dbUtils.Insert(statement); var sut = new CreditCardController(new CreditCardRepository(dbUtils.DbContext)); // Act var creditCardList = sut.GetList(monthYear); // Assert Assert.Equal(1, creditCardList.Count); CreditCardBill currentBill = creditCardList.First().GetCurrentBill(monthYear); Assert.Equal(bill.Id, currentBill.Id); Assert.Equal(TestsUtils.CLOSING_DAY + 1, currentBill.ClosingDay); Assert.Equal(creditCard.Id, currentBill.CreditCard.Id); Assert.Equal(1, currentBill.Statements.Count); CreditCardBill nextBill = creditCardList.First().GetNextBill(monthYear); Assert.True(nextBill.Id > 0); Assert.Equal(TestsUtils.CLOSING_DAY, nextBill.ClosingDay); Assert.Equal(creditCard.Id, nextBill.CreditCard.Id); Assert.Equal(0, nextBill.Statements.Count); }
public void Create_CreditCardStatement_BillShoudHaveId() { // Arrange string description = "test description"; decimal amount = 100m; DateTime date = DateTime.Parse("2018-05-02"); CreditCardBill billWithoutId = new CreditCardBill(); // Act Action createStatement = () => CreditCardStatement.Create( billWithoutId, StatementDescription.Create(description), MoneyAmount.Create(amount), date); // Assert Assert.Throws <ArgumentException>(createStatement); }
public void Create_CreditCardStatement_BillShoudNotBeNull() { // Arrange string description = "test description"; decimal amount = 100m; DateTime date = DateTime.Parse("2018-05-02"); CreditCardBill nullBill = null; // Act Action createStatement = () => CreditCardStatement.Create( nullBill, StatementDescription.Create(description), MoneyAmount.Create(amount), date); // Assert Assert.Throws <ArgumentNullException>(createStatement); }
public void Create_CreditCardStatement() { // Arrange string description = "test description"; decimal amount = 100m; DateTime date = DateTime.Parse("2018-05-02"); int id = 10; CreditCardBill bill = new CreditCardBill(); bill.SetId(id); // Act CreditCardStatement statement = CreditCardStatement.Create( bill, StatementDescription.Create(description), MoneyAmount.Create(amount), date); // Assert Assert.Equal(id, statement.Bill.Id); Assert.Equal(description, statement.Description.Value); Assert.Equal(amount, statement.Amount.Value); Assert.Equal(date, statement.BuyDate); }