public void TransactionRepository_Update() { var dbHelper = new DbHelper(new SQLitePlatformWinRT(), new TestDatabasePath()); using (var db = dbHelper.GetSqlConnection()) { db.DeleteAll<FinancialTransaction>(); } var repository = new TransactionRepository(new TransactionDataAccess(dbHelper)); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, Amount = 20, AmountWithoutExchange = 20 }; repository.Save(transaction); Assert.AreEqual(1, repository.Data.Count); Assert.AreSame(transaction, repository.Data[0]); transaction.Amount = 30; repository.Save(transaction); Assert.AreEqual(1, repository.Data.Count); Assert.AreEqual(30, repository.Data[0].Amount); }
public void TransactionRepository_Update() { var dbHelper = new SqliteConnectionCreator(new WindowsSqliteConnectionFactory()); using (var db = dbHelper.GetConnection()) { db.DeleteAll<FinancialTransaction>(); } var repository = new TransactionRepository(new TransactionDataAccess(dbHelper), new RecurringTransactionDataAccess(dbHelper)); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, Amount = 20 }; repository.Save(transaction); repository.Data.Count.ShouldBe(1); repository.Data[0].ShouldBeSameAs(transaction); transaction.Amount = 30; repository.Save(transaction); repository.Data.Count.ShouldBe(1); repository.Data[0].Amount.ShouldBe(30); }
public void TransactionRepository_AddMultipleToCache() { var repository = new TransactionRepository(new TransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, Amount = 20, AmountWithoutExchange = 20 }; var secondTransaction = new FinancialTransaction { ChargedAccount = account, Amount = 60, AmountWithoutExchange = 60 }; repository.Save(transaction); repository.Save(secondTransaction); Assert.AreEqual(2, repository.Data.Count); Assert.AreSame(transaction, repository.Data[0]); Assert.AreSame(secondTransaction, repository.Data[1]); }
public void Save_TransferTransaction_CorrectlySaved() { var transactionDataAccessMock = new TransactionDataAccessMock(); var repository = new TransactionRepository(transactionDataAccessMock, new RecurringTransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; var targetAccount = new Account { Name = "targetAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, TargetAccount = targetAccount, Amount = 20, Type = (int) TransactionType.Transfer }; repository.Save(transaction); transactionDataAccessMock.FinancialTransactionTestList[0].ShouldBeSameAs(transaction); transactionDataAccessMock.FinancialTransactionTestList[0].ChargedAccount.ShouldBeSameAs(account); transactionDataAccessMock.FinancialTransactionTestList[0].TargetAccount.ShouldBeSameAs(targetAccount); transactionDataAccessMock.FinancialTransactionTestList[0].Type.ShouldBe((int) TransactionType.Transfer); }
public void Save_DifferentTransactionTypes_CorrectlySaved(TransactionType type) { var accountRepoSetup = new Mock<IDataAccess<Account>>(); accountRepoSetup.Setup(x => x.LoadList(null)).Returns(new List<Account>()); var transactionDataAccessMock = new TransactionDataAccessMock(); var repository = new TransactionRepository(transactionDataAccessMock, new RecurringTransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, TargetAccount = null, Amount = 20, Type = (int) type }; repository.Save(transaction); transactionDataAccessMock.FinancialTransactionTestList[0].ShouldBeSameAs(transaction); transactionDataAccessMock.FinancialTransactionTestList[0].ChargedAccount.ShouldBeSameAs(account); transactionDataAccessMock.FinancialTransactionTestList[0].TargetAccount.ShouldBeNull(); transactionDataAccessMock.FinancialTransactionTestList[0].Type.ShouldBe((int) type); }
public void SaveWithouthAccount_NoAccount_InvalidDataException() { var repository = new TransactionRepository(new TransactionDataAccessMock(), new RecurringTransactionDataAccessMock()); var transaction = new FinancialTransaction { Amount = 20 }; Assert.Throws<InvalidDataException>(() => repository.Save(transaction)); }
public void SaveWithouthAccount_NoAccount_InvalidDataException() { var accountRepoSetup = new Mock<IDataAccess<Account>>(); accountRepoSetup.Setup(x => x.LoadList(null)).Returns(new List<Account>()); var repository = new TransactionRepository(new TransactionDataAccessMock(), new RecurringTransactionDataAccessMock()); var transaction = new FinancialTransaction { Amount = 20 }; Assert.Throws<AccountMissingException>(() => repository.Save(transaction)); }
public void TransactionRepository_AddItemToDataList() { var repository = new TransactionRepository(new TransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, Amount = 20, AmountWithoutExchange = 20, Type = (int) TransactionType.Transfer }; repository.Save(transaction); Assert.IsTrue(repository.Data.Contains(transaction)); }
public void TransactionRepository_GetUnclearedTransactionsFuture() { var repository = new TransactionRepository(new TransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; repository.Save(new FinancialTransaction { ChargedAccount = account, Amount = 55, Date = Utilities.GetEndOfMonth().AddDays(-1), Note = "this is a note!!!", Cleared = false } ); var transactions = repository.GetUnclearedTransactions(); Assert.AreEqual(0, transactions.Count()); transactions = repository.GetUnclearedTransactions(Utilities.GetEndOfMonth()); Assert.AreEqual(1, transactions.Count()); }
public void GetUnclearedTransactions_FutureDate_PastTransactions() { var accountRepoSetup = new Mock<IDataAccess<Account>>(); accountRepoSetup.Setup(x => x.LoadList(null)).Returns(new List<Account>()); var repository = new TransactionRepository(new TransactionDataAccessMock(), new RecurringTransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; repository.Save(new FinancialTransaction { ChargedAccount = account, Amount = 55, Date = Utilities.GetEndOfMonth().AddDays(-1), Note = "this is a note!!!", IsCleared = false } ); var transactions = repository.GetUnclearedTransactions(); transactions.Count().ShouldBe(0); transactions = repository.GetUnclearedTransactions(Utilities.GetEndOfMonth()); transactions.Count().ShouldBe(1); }
public void AddItemToDataList_SaveAccount_IsAddedToData() { var accountRepoSetup = new Mock<IDataAccess<Account>>(); accountRepoSetup.Setup(x => x.LoadList(null)).Returns(new List<Account>()); var repository = new TransactionRepository(new TransactionDataAccessMock(), new RecurringTransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, Amount = 20, Type = (int) TransactionType.Transfer }; repository.Save(transaction); repository.Data.Contains(transaction).ShouldBeTrue(); }
public void TransactionRepository_AddMultipleToCache() { var accountRepoSetup = new Mock<IDataAccess<Account>>(); accountRepoSetup.Setup(x => x.LoadList(null)).Returns(new List<Account>()); var repository = new TransactionRepository(new TransactionDataAccessMock(), new RecurringTransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, Amount = 20 }; var secondTransaction = new FinancialTransaction { ChargedAccount = account, Amount = 60 }; repository.Save(transaction); repository.Save(secondTransaction); repository.Data.Count.ShouldBe(2); repository.Data[0].ShouldBeSameAs(transaction); repository.Data[1].ShouldBeSameAs(secondTransaction); }
public void TransactionRepository_Delete() { var accountRepoSetup = new Mock<IDataAccess<Account>>(); accountRepoSetup.Setup(x => x.LoadList(null)).Returns(new List<Account>()); var transactionDataAccessMock = new TransactionDataAccessMock(); var repository = new TransactionRepository(transactionDataAccessMock, new RecurringTransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, Amount = 20 }; repository.Save(transaction); transactionDataAccessMock.FinancialTransactionTestList[0].ShouldBeSameAs(transaction); repository.Delete(transaction); transactionDataAccessMock.FinancialTransactionTestList.Any().ShouldBeFalse(); repository.Data.Any().ShouldBeFalse(); }
public void TransactionRepository_Delete() { var transactionDataAccessMock = new TransactionDataAccessMock(); var repository = new TransactionRepository(transactionDataAccessMock, new RecurringTransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, Amount = 20 }; repository.Save(transaction); transactionDataAccessMock.FinancialTransactionTestList[0].ShouldBeSameAs(transaction); repository.Delete(transaction); transactionDataAccessMock.FinancialTransactionTestList.Any().ShouldBeFalse(); repository.Data.Any().ShouldBeFalse(); }
public void TransactionRepository_SaveTransfer() { var transactionDataAccessMock = new TransactionDataAccessMock(); var repository = new TransactionRepository(transactionDataAccessMock); var account = new Account { Name = "TestAccount" }; var targetAccount = new Account { Name = "targetAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, TargetAccount = targetAccount, Amount = 20, AmountWithoutExchange = 20, Type = (int) TransactionType.Transfer }; repository.Save(transaction); Assert.IsTrue(transaction == transactionDataAccessMock.FinancialTransactionTestList[0]); Assert.IsTrue(account == transactionDataAccessMock.FinancialTransactionTestList[0].ChargedAccount); Assert.IsTrue(targetAccount == transactionDataAccessMock.FinancialTransactionTestList[0].TargetAccount); }
public void GetUnclearedTransactions_PastDate_PastTransactions() { var repository = new TransactionRepository(new TransactionDataAccessMock(), new RecurringTransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; repository.Save(new FinancialTransaction { ChargedAccount = account, Amount = 55, Date = DateTime.Today.AddDays(-1), Note = "this is a note!!!", IsCleared = false } ); var transactions = repository.GetUnclearedTransactions(); transactions.Count().ShouldBe(1); }
public void TransactionRepository_GetUnclearedTransactionsPast() { var repository = new TransactionRepository(new TransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; repository.Save(new FinancialTransaction { ChargedAccount = account, Amount = 55, Date = DateTime.Today.AddDays(-1), Note = "this is a note!!!", Cleared = false } ); var transactions = repository.GetUnclearedTransactions(); Assert.AreEqual(1, transactions.Count()); }
public void TransactionRepository_AddMultipleToCache() { var repository = new TransactionRepository(new TransactionDataAccessMock(), new RecurringTransactionDataAccessMock()); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, Amount = 20 }; var secondTransaction = new FinancialTransaction { ChargedAccount = account, Amount = 60 }; repository.Save(transaction); repository.Save(secondTransaction); repository.Data.Count.ShouldBe(2); repository.Data[0].ShouldBeSameAs(transaction); repository.Data[1].ShouldBeSameAs(secondTransaction); }
public void TransactionRepository_SaveWithouthAccount() { try { var transactionDataAccessMock = new TransactionDataAccessMock(); var repository = new TransactionRepository(transactionDataAccessMock); var transaction = new FinancialTransaction { Amount = 20, AmountWithoutExchange = 20 }; repository.Save(transaction); } catch (InvalidDataException) { return; } catch (Exception) { Assert.Fail("wrong exception."); } Assert.Fail("No excpetion thrown"); }
public void TransactionRepository_Delete() { var transactionDataAccessMock = new TransactionDataAccessMock(); var repository = new TransactionRepository(transactionDataAccessMock); var account = new Account { Name = "TestAccount" }; var transaction = new FinancialTransaction { ChargedAccount = account, Amount = 20, AmountWithoutExchange = 20 }; repository.Save(transaction); Assert.AreSame(transaction, transactionDataAccessMock.FinancialTransactionTestList[0]); repository.Delete(transaction); Assert.IsFalse(transactionDataAccessMock.FinancialTransactionTestList.Any()); Assert.IsFalse(repository.Data.Any()); }