예제 #1
0
        public void UpdateTransactionTest()
        {
            ITransactionFactory transactionFactory = new RegularTransactionFactory();
            var accountStorage  = new SqLiteAccountStorage(new RegularAccountFactory());
            var categoryStorage = new SqLiteCategoryStorage(new RegularCategoryFactory());
            var storage         = new SqLiteTransactionStorage(transactionFactory, accountStorage, categoryStorage);

            categoryStorage.DeleteAllData();
            accountStorage.DeleteAllData();
            storage.DeleteAllData();
            var transaction       = CreateTransaction(accountStorage, categoryStorage, transactionFactory);
            var childTransaction  = CreateTransaction(accountStorage, categoryStorage, transactionFactory);
            var childTransaction1 = CreateTransaction(accountStorage, categoryStorage, transactionFactory);
            var newTransaction    = storage.CreateTransaction(transaction);

            storage.AddChildTransaction(newTransaction, storage.CreateTransaction(childTransaction));
            storage.AddChildTransaction(newTransaction, storage.CreateTransaction(childTransaction1));
            childTransaction1.Name  = "New Name";
            childTransaction1.Total = 515.03m;


            storage.UpdateTransaction(childTransaction1);


            var firstTransaction = storage.GetAllTransactions().First(x => x.Id == childTransaction1.Id);

            Assert.AreEqual(childTransaction1.Name, firstTransaction.Name);
            Assert.AreEqual(childTransaction1.Category.Id, firstTransaction.Category.Id);
            Assert.AreEqual(childTransaction1.Account.Id, firstTransaction.Account.Id);
            Assert.AreEqual(childTransaction1.Total, firstTransaction.Total);
        }
예제 #2
0
        public void DeleteComplexTransactionTest()
        {
            ITransactionFactory transactionFactory = new RegularTransactionFactory();
            var accountStorage  = new SqLiteAccountStorage(new RegularAccountFactory());
            var categoryStorage = new SqLiteCategoryStorage(new RegularCategoryFactory());
            var storage         = new SqLiteTransactionStorage(transactionFactory, accountStorage, categoryStorage);

            categoryStorage.DeleteAllData();
            accountStorage.DeleteAllData();
            storage.DeleteAllData();
            var transaction       = CreateTransaction(accountStorage, categoryStorage, transactionFactory);
            var childTransaction  = CreateTransaction(accountStorage, categoryStorage, transactionFactory);
            var childTransaction1 = CreateTransaction(accountStorage, categoryStorage, transactionFactory);
            var newTransaction    = storage.CreateTransaction(transaction);

            storage.AddChildTransaction(newTransaction, storage.CreateTransaction(childTransaction));
            storage.AddChildTransaction(newTransaction, storage.CreateTransaction(childTransaction1));



            storage.DeleteTransaction(newTransaction);


            var numberOfTransactions = storage.GetAllTransactions().Count();


            Assert.AreEqual(0, numberOfTransactions);
        }
예제 #3
0
        public void UpdateTransactionTest()
        {
            var accountFactory     = new RegularAccountFactory();
            var categoryFactory    = new RegularCategoryFactory();
            var accountStorage     = new SqLiteAccountStorage(accountFactory);
            var categoryStorage    = new SqLiteCategoryStorage(categoryFactory);
            var transactionFactory = new RegularQuickTransactionFactory();
            var storage            = new SqLiteQuickTransactionStorage(transactionFactory, accountStorage, categoryStorage);

            storage.DeleteAllData();
            var transaction = CreateTransaction();

            storage.CreateQuickTransaction(transaction);

            transaction.Name  = "New Name";
            transaction.Total = 515.03m;


            storage.UpdateQuickTransaction(transaction);


            var firstTransaction = storage.GetAllQuickTransactions().First();

            Assert.AreEqual(transaction.Name, firstTransaction.Name);
            Assert.AreEqual(transaction.Category.Id, firstTransaction.Category.Id);
            Assert.AreEqual(transaction.Account.Id, firstTransaction.Account.Id);
            Assert.AreEqual(transaction.Total, firstTransaction.Total);
        }
예제 #4
0
        public void CreateComplexTransactionTest()
        {
            var accountStorage     = new SqLiteAccountStorage(new RegularAccountFactory());
            var categoryStorage    = new SqLiteCategoryStorage(new RegularCategoryFactory());
            var transactionFactory = new RegularTransactionFactory();
            var storage            = new SqLiteTransactionStorage(transactionFactory, accountStorage, categoryStorage);

            categoryStorage.DeleteAllData();
            accountStorage.DeleteAllData();
            storage.DeleteAllData();
            var transaction       = CreateTransaction(accountStorage, categoryStorage, transactionFactory);
            var childTransaction  = CreateTransaction(accountStorage, categoryStorage, transactionFactory);
            var childTransaction1 = CreateTransaction(accountStorage, categoryStorage, transactionFactory);

            var newTransaction = storage.CreateTransaction(transaction);

            storage.AddChildTransaction(newTransaction, storage.CreateTransaction(childTransaction));
            storage.AddChildTransaction(newTransaction, storage.CreateTransaction(childTransaction1));


            var complexTransaction = storage.GetAllTransactions().FirstOrDefault(x => x.IsComplexTransaction);

            Assert.AreEqual(transaction.Name, complexTransaction?.Name);
            Assert.AreEqual(transaction.Category.Id, complexTransaction?.Category?.Id);
            Assert.AreEqual(transaction.Account.Id, complexTransaction?.Account?.Id);
            Assert.AreEqual(426.00m, complexTransaction?.Total);
        }
예제 #5
0
        public void Setup()
        {
            _factory = new RegularAccountFactory();
            _storage = new SqLiteAccountStorage(_factory);
            _storage.DeleteAllData();
            var accountName        = "Test Account";
            var accountDescription = "Test Description";
            var accountCurrency    = "USD";


            _account = _factory.CreateAccount(accountName, accountDescription, accountCurrency);
        }
예제 #6
0
        public void GetAllAccountsTest()
        {
            var factory = new RegularAccountFactory();
            var storage = new SqLiteAccountStorage(factory);

            _account.Description = DateTime.Now.ToShortTimeString();
            storage.CreateAccount(_account);

            var firstAccount = storage.GetAllAccounts().Last();

            Assert.AreEqual(_account.Name, firstAccount.Name);
            Assert.AreEqual(_account.Description, firstAccount.Description);
            Assert.AreEqual(_account.Currency, firstAccount.Currency);
        }
예제 #7
0
        public void CreateAccountTest()
        {
            var factory = new RegularAccountFactory();
            var storage = new SqLiteAccountStorage(factory);
            var account = CreateAccount();


            var newAccount = storage.CreateAccount(account);


            Assert.AreEqual(account.Name, newAccount.Name);
            Assert.AreEqual(account.Description, newAccount.Description);
            Assert.AreEqual(account.Currency, newAccount.Currency);
        }
예제 #8
0
        public void DeleteAccountTest()
        {
            var factory = new RegularAccountFactory();
            var storage = new SqLiteAccountStorage(factory);

            storage.DeleteAllData();
            var account = CreateAccount();

            storage.CreateAccount(account);
            storage.DeleteAccount(account);


            var numberOfAccounts = storage.GetAllAccounts().Count();


            Assert.AreEqual(0, numberOfAccounts);
        }
예제 #9
0
        public void CreateTransactionTest()
        {
            var accountFactory     = new RegularAccountFactory();
            var categoryFactory    = new RegularCategoryFactory();
            var accountStorage     = new SqLiteAccountStorage(accountFactory);
            var categoryStorage    = new SqLiteCategoryStorage(categoryFactory);
            var transactionFactory = new RegularQuickTransactionFactory();
            var storage            = new SqLiteQuickTransactionStorage(transactionFactory, accountStorage, categoryStorage);
            var transaction        = CreateTransaction();


            var newTransaction = storage.CreateQuickTransaction(transaction);


            Assert.AreEqual(transaction.Name, newTransaction.Name);
            Assert.AreEqual(transaction.Category.Id, newTransaction.Category.Id);
            Assert.AreEqual(transaction.Account.Id, newTransaction.Account.Id);
            Assert.AreEqual(transaction.Total, newTransaction.Total);
        }
예제 #10
0
        private IQuickTransaction CreateTransaction()
        {
            var accountFactory  = new RegularAccountFactory();
            var categoryFactory = new RegularCategoryFactory();
            var accountManager  = new SqLiteAccountStorage(accountFactory);
            var categoryManager = new SqLiteCategoryStorage(categoryFactory);

            var factory = new RegularQuickTransactionFactory();


            var account  = accountManager.CreateAccount("Test account", "Account Description", "EUR");
            var category = categoryManager.CreateCategory("Sample category", "Category Description", 0, null);


            var transaction = factory.CreateQuickTransaction(
                account, category, "Simple Transaction", 100, 5, 0, false, false);

            return(transaction);
        }
예제 #11
0
        private ITransaction CreateTransaction()
        {
            var accountFactory  = new RegularAccountFactory();
            var categoryFactory = new RegularCategoryFactory();
            var accountManager  = new SqLiteAccountStorage(accountFactory);
            var categoryManager = new SqLiteCategoryStorage(categoryFactory);

            var factory = new RegularTransactionFactory();

            var transactionName  = "Test Transaction";
            var transactionTotal = 213.00m;


            var account  = accountManager.CreateAccount("Test account", "Account Description", "EUR");
            var category = categoryManager.CreateCategory("Sample category", "Category Description", 0, null);

            var transaction = factory.CreateTransaction(account, category, transactionName, transactionTotal, DateTime.Now, 0, 0.12m, null, null);

            return(transaction);
        }
예제 #12
0
        public void UpdateAccountTest()
        {
            var factory = new RegularAccountFactory();
            var storage = new SqLiteAccountStorage(factory);

            storage.DeleteAllData();
            var account = CreateAccount();

            storage.CreateAccount(account);
            account.Name        = "New Name";
            account.Description = "New Description";


            storage.UpdateAccount(account);


            var firstAccount = storage.GetAllAccounts().First();

            Assert.AreEqual(account.Name, firstAccount.Name);
            Assert.AreEqual(account.Description, firstAccount.Description);
        }
예제 #13
0
        public void DeleteTransactionTest()
        {
            var accountFactory     = new RegularAccountFactory();
            var categoryFactory    = new RegularCategoryFactory();
            var accountStorage     = new SqLiteAccountStorage(accountFactory);
            var categoryStorage    = new SqLiteCategoryStorage(categoryFactory);
            var transactionFactory = new RegularQuickTransactionFactory();
            var storage            = new SqLiteQuickTransactionStorage(transactionFactory, accountStorage, categoryStorage);

            storage.DeleteAllData();
            var transaction = CreateTransaction();

            storage.CreateQuickTransaction(transaction);



            storage.DeleteQuickTransaction(transaction);


            var numberOfTransactions = storage.GetAllQuickTransactions().Count();


            Assert.AreEqual(0, numberOfTransactions);
        }