public void GetAllTransactionsWhenSearchedOnAccountAndPayeeAndCategoryReturnsSortedTransactionCollection() { DataHelper.NewDb(); var account = "sort"; var accountId = DataHelper.Accounts.Where(a => a.Name.ToLower().Contains(account)).SingleOrDefault().Id; var payee = "gas"; var payeeId = DataHelper.Payees.Where(a => a.Name.ToLower().Contains(payee)).SingleOrDefault().Id; var category = "charges"; var categoryId = DataHelper.Categories.Where(a => a.Name.ToLower().Contains(category)).SingleOrDefault().Id; var service = new RentalsService(); var expectedAccountMatches = DataHelper.Transactions .Where(t => t.AccountId == accountId && t.Date >= DateTime.Today.AddMonths(-6) && t.Date <= DateTime.Today).Count(); var expectedPayeeMatches = DataHelper.Transactions .Where(t => t.PayeeId == payeeId && t.Date >= DateTime.Today.AddMonths(-6) && t.Date <= DateTime.Today).Count(); var expectedCategoryMatches = DataHelper.Transactions .Where(t => t.CategoryId == categoryId && t.Date >= DateTime.Today.AddMonths(-6) && t.Date <= DateTime.Today).Count(); var actual = service.GetAllTransactionsWithAccountAndPayeeAndCategory( account, payee, category, DateTime.Today.AddMonths(-6), DateTime.Today, true); Assert.IsNotNull(actual); Assert.AreEqual(expectedAccountMatches, actual.Count(t => t.AccountId == accountId)); Assert.AreEqual(expectedPayeeMatches, actual.Count(t => t.PayeeId == payeeId)); Assert.AreEqual(expectedCategoryMatches, actual.Count(t => t.CategoryId == categoryId)); }
public void CanInsertNewTransactionWithANewAccountCategoryAndPayeeAndAllWillBeInserted() { DataHelper.NewDb(); var service = new RentalsService(); var transactionToAdd = new Transaction() { Date = DateTime.Today, Amount = 10.00m, Account = new Account() { Name = "New Accoount", OpeningBalance = 0.00m }, Payee = new Payee() { Name = "New Payee", DefaultCategoryId = 1 }, Category = new Category() { Name = "New Category", Type = CategoryType.Income }, Reference = "Reference", Memo = "Memo" }; service.SaveNewTransaction(transactionToAdd); Assert.AreEqual(DataHelper.Transactions.Count + 1, service.GetNumberOfTransactions()); Assert.AreEqual(DataHelper.Accounts.Count + 1, service.GetNumberOfAccounts()); Assert.AreEqual(DataHelper.Payees.Count + 1, service.GetNumberOfPayees()); Assert.AreEqual(DataHelper.Categories.Count + 1, service.GetNumberOfCategories()); }
public void GetAllTransactionsOnSortablePayeeWithDateRangeAndOrderDescendingReturnsSortedTransactionCollection() { DataHelper.NewDb(); var payee = "Sortable Payee"; var payeeId = DataHelper.Payees.Where(a => a.Name == payee).SingleOrDefault().Id; var service = new RentalsService(); var expected = DataHelper.Transactions .Where(t => t.PayeeId == payeeId && t.Date >= DateTime.Today.AddMonths(-6) && t.Date <= DateTime.Today); var actual = service.GetAllTransactionsWithAccountAndPayeeAndCategory( null, payee, null, DateTime.Today.AddMonths(-6), DateTime.Today, false); Assert.IsNotNull(actual); var order = actual.First().Amount; foreach (var transaction in actual) { Assert.AreEqual(order, transaction.Amount); order -= 1.00m; } }
public void CanGetNumberOfTransactions() { DataHelper.NewDb(); var service = new RentalsService(); Assert.AreEqual(DataHelper.Transactions.Count, service.GetNumberOfTransactions()); }
public void CanGetAnEmptyListOfAccounts() { DataHelper.NewDb(false); var service = new RentalsService(); Assert.AreEqual(0, service.GetAllAccounts().Count); }
public void CanGetNumberOfPayees() { DataHelper.NewDb(); var service = new RentalsService(); Assert.AreEqual(DataHelper.Payees.Count, service.GetNumberOfPayees()); }
public void CanGetAListOfAccounts() { DataHelper.NewDb(); var service = new RentalsService(); Assert.AreEqual(DataHelper.Accounts.Count, service.GetAllAccounts().Count); }
public void GettingBalanceOfNonExistentAccountReturnsZero() { DataHelper.NewDb(); var service = new RentalsService(); Assert.AreEqual(0.00m, service.GetAccountBalance(999)); }
public void FindAnAccountWithTransactionsThatDoesNotExistReturnsNull() { DataHelper.NewDb(); var service = new RentalsService(); var actual = service.FindAccountWithTransactions(999); Assert.IsNull(actual); }
public void CannotDeleteTransactionThatDoesNotExist() { DataHelper.NewDb(); var service = new RentalsService(); service.RemoveTransaction(999); Assert.Fail("Deleted a non-existent transaction"); }
public void CanDeleteTransaction() { DataHelper.NewDb(); var service = new RentalsService(); service.RemoveTransaction(1); Assert.AreEqual(DataHelper.Transactions.Count - 1, service.GetAllTransactionsWithAccountAndPayeeAndCategory().Count); }
public void CanGetAccountBalanceByAccountId() { DataHelper.NewDb(); var service = new RentalsService(); Assert.AreEqual(DataHelper.GetAccountBalance(1), service.GetAccountBalance(1)); Assert.AreEqual(DataHelper.GetAccountBalance(2), service.GetAccountBalance(2)); Assert.AreEqual(DataHelper.GetAccountBalance(3), service.GetAccountBalance(3)); }
public void FindAPayeeThatDoesNotExistReturnsNull() { DataHelper.NewDb(); var service = new RentalsService(); var actual = service.FindPayee(999); Assert.IsNull(actual); }
public void FindPayeeWithTransactionsWithDateTodayReturnsEmptyTransactionCollection() { DataHelper.NewDb(); var service = new RentalsService(); var actual = service.FindPayeeWithTransactions(1, DateTime.Today, DateTime.Today); Assert.IsNotNull(actual); Assert.AreEqual(0, actual.Transactions.Count); }
public void GetAllTransactionsWithNoFilteringReturnsAllTransactionsCollection() { DataHelper.NewDb(); var service = new RentalsService(); var actual = service.GetAllTransactionsWithAccountAndPayeeAndCategory(); Assert.IsNotNull(actual); Assert.AreEqual(DataHelper.Transactions.Count, actual.Count); }
public void GetAllAccountsIncludesBalances() { DataHelper.NewDb(); var service = new RentalsService(); var actual = new List <Account>(service.GetAllAccounts()); Assert.AreEqual(DataHelper.Accounts.Count, actual.Count); Assert.AreEqual(DataHelper.GetAccountBalance(1), actual[0].Balance); Assert.AreEqual(DataHelper.GetAccountBalance(2), actual[1].Balance); Assert.AreEqual(DataHelper.GetAccountBalance(3), actual[2].Balance); }
public async Task Update_CorrectData_RentalCreated() { var repository = MockRentalsRepository(); var service = new RentalsService(repository.Object); var rental = new Rental { Id = 1, BookId = 1, CustomerId = Guid.NewGuid(), StartDate = new DateTime(2012, 12, 12) }; await service.Update(rental); repository.Verify(repository => repository.Update(rental), Times.AtLeastOnce); }
public void GetAllTransactionsWithDateTomorrowReturnsEmptyTransactionCollection() { DataHelper.NewDb(); var service = new RentalsService(); var actual = service.GetAllTransactionsWithAccountAndPayeeAndCategory( null, null, null, DateTime.Today.AddDays(1), DateTime.Today.AddDays(1)); Assert.IsNotNull(actual); Assert.AreEqual(0, actual.Count); }
public void CannotUpdateACategoryNameToTheSameNameAsAnExistingCategory() { DataHelper.NewDb(); var service = new RentalsService(); var category = service.FindCategory(1); category.Name = "Utilities"; service.SaveUpdatedCategory(category); Assert.Fail("Added an category with same name as an exiting category"); }
public void CannotUpdateATransactionToHaveAnAmountOfZero() { DataHelper.NewDb(); var service = new RentalsService(); var transaction = service.FindTransaction(1); transaction.Amount = 0.00m; service.SaveUpdatedTransaction(transaction); Assert.Fail("Added an transaction with an amount of zero"); }
public void CannotUpdateAPayeeNameToTheSameNameAsAnExistingPayee() { DataHelper.NewDb(); var service = new RentalsService(); var payee = service.FindPayee(1); payee.Name = "Renter B"; service.SaveUpdatedPayee(payee); Assert.Fail("Added an payee with same name as an exiting payee"); }
public void CannotUpdateAnAccountNameToTheSameNameAsAnExistingAccount() { DataHelper.NewDb(); var service = new RentalsService(); var account = service.FindAccount(1); account.Name = "BankAccount3"; service.SaveUpdatedAccount(account); Assert.Fail("Added an account with same name as an exiting account"); }
public void CanFindCategoryById() { DataHelper.NewDb(); var service = new RentalsService(); var actual = service.FindCategory(1); var expected = DataHelper.Categories.SingleOrDefault(c => c.Id == 1); Assert.AreEqual(expected.Name, actual.Name); Assert.AreEqual(expected.Type, actual.Type); }
public void CanFindCategoryByIdWithAllItsTransactions() { DataHelper.NewDb(); var service = new RentalsService(); var actual = service.FindCategoryWithTransactions(1); var expected = DataHelper.Categories.SingleOrDefault(c => c.Id == 1); Assert.AreEqual(expected.Name, actual.Name); Assert.AreEqual(DataHelper.Transactions.Count(t => t.CategoryId == 1), actual.Transactions.Count); }
public void CanFindAccountById() { DataHelper.NewDb(); var service = new RentalsService(); var actual = service.FindAccount(1); var expected = DataHelper.Accounts.SingleOrDefault(a => a.Id == 1); Assert.AreEqual(expected.Name, actual.Name); Assert.AreEqual(expected.OpeningBalance, actual.OpeningBalance); Assert.AreEqual(DataHelper.GetAccountBalance(1), actual.Balance); }
public void CanGetTotalOfAccountBalances() { DataHelper.NewDb(); var service = new RentalsService(); var total = 0.00m; foreach (var account in DataHelper.Accounts) { total += DataHelper.GetAccountBalance(account.Id); } Assert.AreEqual(total, service.GetTotalOfAccountBalances()); }
public void CanUpdatePayee() { DataHelper.NewDb(); var service = new RentalsService(); var payee = service.FindPayee(1); string expected = "Changed Name"; payee.Name = expected; service.SaveUpdatedPayee(payee); Assert.AreEqual(expected, service.FindPayee(1).Name); }
public void FindPayeeWithTransactionsOnSortablePayeeWithDateTodayReturnsTransactionCollection() { DataHelper.NewDb(); var payeeId = DataHelper.Payees.Where(a => a.Name == "Sortable Payee").SingleOrDefault().Id; var service = new RentalsService(); var expected = DataHelper.Transactions .Where(t => t.PayeeId == payeeId && t.Date == DateTime.Today); var actual = service.FindPayeeWithTransactions(payeeId, DateTime.Today, DateTime.Today); Assert.IsNotNull(actual); Assert.AreEqual(expected.Count(), actual.Transactions.Count); }
public void CanFindPayeeByIdWithAllItsTransactions() { DataHelper.NewDb(); var service = new RentalsService(); var actual = service.FindPayeeWithTransactions(1); var expected = DataHelper.Payees.SingleOrDefault(p => p.Id == 1); Assert.AreEqual(expected.Name, actual.Name); Assert.AreEqual(expected.DefaultCategoryId, actual.DefaultCategoryId); Assert.AreEqual(expected.Memo, actual.Memo); Assert.AreEqual(expected.Transactions.Count, actual.Transactions.Count); }
public void CanFindPayeeById() { DataHelper.NewDb(); var service = new RentalsService(); var actual = service.FindPayee(1); var expected = DataHelper.Payees.SingleOrDefault(p => p.Id == 1); Assert.AreEqual(expected.Name, actual.Name); Assert.AreEqual(expected.DefaultCategoryId, actual.DefaultCategoryId); Assert.AreEqual(expected.Memo, actual.Memo); Assert.IsNotNull(actual.DefaultCategory); }