public void AddTransaction_Add2IdenticalIncomeTransactionsToEmptyBill_ExceptionThrown() { // Arrange Bill bill = new Bill(); Transaction transaction = new Transaction(new Money(100, "PLN"), new DateTimeOffset(2010, 10, 10, 10, 10, 10, TimeSpan.Zero), "Cinema"); // Act void addFirstTransactionDelegate() => bill.AddTransaction(transaction); void addIdenticalTransactionDelegate() => bill.AddTransaction(transaction); // Assert Assert.That(() => addFirstTransactionDelegate(), Throws.Nothing); Exception ex = Assert.Throws <Exception>(() => addIdenticalTransactionDelegate()); Assert.That(ex.Message, Is.EqualTo("Transaction is already added to the bill")); }
public void AddTransaction_Add2DifferentIncomeTransactionsToEmptyBill_IncomeAdded() { // Arrange Bill bill = new Bill(); Transaction firstTransaction = new Transaction(new Money(100, "PLN"), new DateTimeOffset(2010, 10, 10, 10, 10, 10, TimeSpan.Zero), "Cinema"); Transaction secondTransaction = new Transaction(new Money(200, "PLN"), new DateTimeOffset(2010, 10, 11, 10, 10, 10, TimeSpan.Zero), "Dinner"); // Act bill.AddTransaction(firstTransaction); bill.AddTransaction(secondTransaction); // Assert Assert.AreEqual(2, bill.Transactions.Count); Assert.AreEqual(firstTransaction, bill.Transactions.First()); Assert.AreEqual(secondTransaction, bill.Transactions.Last()); }
public void GetAllTransactions_BillWith2Transactions_ListReturned() { // Arrange Bill bill = new Bill(); Transaction firstTransaction = new Transaction(new Money(100, "PLN"), new DateTimeOffset(2010, 10, 10, 10, 10, 10, TimeSpan.Zero), "Cinema"); Transaction secondTransaction = new Transaction(new Money(200, "PLN"), new DateTimeOffset(2010, 10, 11, 10, 10, 10, TimeSpan.Zero), "Dinner"); bill.AddTransaction(firstTransaction); bill.AddTransaction(secondTransaction); // Act ICollection <Transaction> result = bill.GetAllTransactions(); // Assert Assert.AreEqual(2, result.Count); Assert.AreEqual(firstTransaction, result.First()); Assert.AreEqual(secondTransaction, result.Last()); }
public void AddTransaction_AddIncomeTransactionToEmptyBill_IncomeAdded() { // Arrange Bill bill = new Bill(); Transaction transaction = new Transaction(new Money(100, "PLN"), new DateTimeOffset(2010, 10, 10, 10, 10, 10, TimeSpan.Zero), "Cinema"); // Act bill.AddTransaction(transaction); // Assert Assert.AreEqual(1, bill.Transactions.Count); Assert.AreEqual(transaction, bill.Transactions.FirstOrDefault()); }
public void RemoveTransaction_ExistinTransaction_SuccesfullRemoved() { // Arrange Bill bill = new Bill("PLN"); Transaction transaction = new Transaction(new Money(100, "PLN"), new DateTimeOffset(2010, 10, 10, 10, 10, 10, TimeSpan.Zero), "Cinema"); bill.AddTransaction(transaction); // Act bill.RemoveTransactionFromBill(transaction.Id); // Assert Assert.AreEqual(0, bill.Transactions.Count); }
public void AddTransaction_AddNullTransaction_ExceptionThrown() { // Arrange Bill bill = new Bill(); Transaction transaction = null; // Act void addTransactionDelegate() => bill.AddTransaction(transaction); // Assert Exception ex = Assert.Throws <ArgumentException>(() => addTransactionDelegate()); Assert.That(ex.Message, Is.EqualTo("Transaction is null")); }
public void AddTransaction_AddIncomeTransactionWithDifferentCurrency_ExceptionThrown() { // Arrange Bill bill = new Bill("PLN"); Transaction transaction = new Transaction(new Money(100, "USD"), new DateTimeOffset(2010, 10, 10, 10, 10, 10, TimeSpan.Zero), "Cinema"); // Act void addTransaction() => bill.AddTransaction(transaction); // Assert Exception ex = Assert.Throws <Exception>(() => addTransaction()); Assert.AreEqual(ex.Message, "Transaction has different currency than bill"); }
public void GetCurrentAmount_BillWithTransactionsNoInitialState_AmountReturned(int[] values, decimal expectedValue) { // Arrange Bill bill = new Bill("PLN"); foreach (var value in values) { Transaction transaction = new Transaction(new Money((decimal)value, "PLN"), new DateTimeOffset(2010, 10, 10, 10, 10, 10, TimeSpan.Zero), "Cinema"); bill.AddTransaction(transaction); } // Act Money result = bill.GetCurrentAmount(); // Assert Assert.AreEqual(expectedValue, result.Amount); }