public void IncomesForCurrentMonthTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Wallet wallet1 = new Wallet(Guid.NewGuid(), "Wall_let", "desc", "UAH", 0, Guid.NewGuid()); Transaction transaction1 = new Transaction(Guid.NewGuid(), 10.10M, "UAH", category1, "", DateTimeOffset.Now); Transaction transaction2 = new Transaction(Guid.NewGuid(), 132.32M, "UAH", category1, "", DateTimeOffset.Now); Transaction transaction3 = new Transaction(Guid.NewGuid(), 43.76M, "UAH", category1, "", new DateTimeOffset(DateTimeOffset.Now.Year, DateTimeOffset.Now.Month - 1, DateTimeOffset.Now.Day, DateTimeOffset.Now.Hour, DateTimeOffset.Now.Minute, DateTimeOffset.Now.Second, DateTimeOffset.Now.Offset)); wallet1.AddTransaction(transaction1); wallet1.AddTransaction(transaction2); wallet1.AddTransaction(transaction3); decimal expected = transaction1.Sum + transaction2.Sum; // Act decimal actual = wallet1.IncomesForCurrentMonth(); // Assert Assert.Equal(expected, actual); }
public async Task <Wallet> GetWallet(string walletName) { var walletStage = dbContext.Wallets.FirstOrDefault(f => f.WalletName.ToUpper().Trim() == walletName.ToUpper().Trim()); if (walletStage == null) { return(null); } var wallet = new Wallet(walletStage.WalletId, walletStage.WalletName); foreach (var t in walletStage.Transactions) { if (t.TransactionType == Business.Enums.ETransactionType.Credit) { wallet.AddTransaction(new CreditTransaction(t.Amount, t.Description, t.TransactionDate)); } else { wallet.AddTransaction(new DebitTransaction(t.Amount, t.Description, t.TransactionDate)); } } return(wallet); }
public void IncomesTest() { // Arrange DateTimeOffset now = DateTimeOffset.Now; DateTimeOffset today = new DateTimeOffset(now.Year, now.Month, now.Day, 0, 0, 0, now.Offset); Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Category category2 = new Category(2) { Name = "Health", Color = Color.Green }; Wallet wallet1 = new Wallet(Guid.NewGuid(), "Wall_let", "desc", "UAH", 0, Guid.NewGuid()); Transaction transaction1 = new Transaction(Guid.NewGuid(), 10.10M, "UAH", category1, "", now); Transaction transaction2 = new Transaction(Guid.NewGuid(), -5.19M, "UAH", category2, "", now); Transaction transaction3 = new Transaction(Guid.NewGuid(), 32.32M, "UAH", category1, "", now); wallet1.AddTransaction(transaction1); wallet1.AddTransaction(transaction2); wallet1.AddTransaction(transaction3); decimal expected = transaction1.Sum + transaction3.Sum; // Act decimal actual = wallet1.Incomes(today, now); // Assert Assert.Equal(expected, actual); }
public void CurrentBalanceTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Category category2 = new Category(2) { Name = "Health", Color = Color.Green }; decimal initialBalance = 50.00M; Wallet wallet1 = new Wallet(Guid.NewGuid(), "Wall_let", "desc", "UAH", initialBalance, Guid.NewGuid()); Transaction transaction1 = new Transaction(Guid.NewGuid(), 10.10M, "UAH", category1, "", DateTimeOffset.Now); Transaction transaction2 = new Transaction(Guid.NewGuid(), -5.19M, "UAH", category2, "", DateTimeOffset.Now); Transaction transaction3 = new Transaction(Guid.NewGuid(), 32.32M, "UAH", category1, "", DateTimeOffset.Now); wallet1.AddTransaction(transaction1); wallet1.AddTransaction(transaction2); wallet1.AddTransaction(transaction3); decimal expected = initialBalance + transaction1.Sum + transaction2.Sum + transaction3.Sum; // Act decimal actual = wallet1.CurrentBalance; // Assert Assert.Equal(expected, actual); }
public void AddTransactionTest() { // Arrange Category categoryHealth = new Category(1) { Name = "Health", Color = Color.Green }; Category categoryEat = new Category(2) { Name = "Eat", Color = Color.Red }; Wallet walletNoCategories = new Wallet(Guid.NewGuid(), "Without categories", "desc", "UAH", 0, Guid.NewGuid()); Wallet walletHealthCategory = new Wallet(Guid.NewGuid(), "With category (Health)", "desc", "USD", 0, Guid.NewGuid()); walletHealthCategory.AddCategory(categoryHealth); Transaction transactionEat = new Transaction(Guid.NewGuid(), -10.10M, "UAH", categoryEat, "", DateTimeOffset.Now); Transaction transactionHealth = new Transaction(Guid.NewGuid(), -2.02M, "UAH", categoryHealth, "", DateTimeOffset.Now); // Act bool wncAddTe = walletNoCategories.AddTransaction(transactionEat); bool wncAddTh = walletNoCategories.AddTransaction(transactionHealth); bool whcAddTe = walletHealthCategory.AddTransaction(transactionEat); bool whcAddTh = walletHealthCategory.AddTransaction(transactionHealth); // Assert Assert.True(wncAddTe); Assert.True(wncAddTh); Assert.Equal(2, walletNoCategories.GetTenRecentlyAddedTransactions().Count); Assert.False(whcAddTe); Assert.True(whcAddTh); Assert.Single(walletHealthCategory.GetTenRecentlyAddedTransactions()); }
public void GetTransactionTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Wallet wallet1 = new Wallet(1) { Name = "Wall_let", Currency = "UAH" }; Transaction transaction1 = new Transaction(1) { Sum = 10.10M, Currency = "UAH", Category = category1, Date = DateTime.Today }; wallet1.AddTransaction(transaction1); // Act Transaction actualNonNull = wallet1.GetTransaction(1); Transaction actualNull = wallet1.GetTransaction(0); // Assert Assert.Equal(transaction1, actualNonNull); Assert.Null(actualNull); }
public void RemoveTransactionByIndexTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Wallet wallet1 = new Wallet(1) { Name = "Wall_let", Currency = "UAH" }; Transaction transaction1 = new Transaction(1) { Sum = 10.10M, Currency = "UAH", Category = category1, Date = DateTime.Today }; wallet1.AddTransaction(transaction1); // Act bool remT1 = wallet1.RemoveTransaction(1); bool remT2 = wallet1.RemoveTransaction(0); // Assert Assert.True(remT1); Assert.False(remT2); }
public void GetTransactionsTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Wallet wallet1 = new Wallet(Guid.NewGuid(), "Wall_let", "desc", "UAH", 0, Guid.NewGuid()); List <Transaction> transactions = new List <Transaction>(); for (int i = 1; i <= 12; i++) { Transaction transaction1 = new Transaction(Guid.NewGuid(), i * 10.10M, "UAH", category1, "", DateTimeOffset.Now); transactions.Add(transaction1); wallet1.AddTransaction(transaction1); } // Act List <Transaction> actual = wallet1.GetTransactions(1, 10); List <Transaction> actualNull = wallet1.GetTransactions(0, 100); // Assert for (int i = 0; i < 10; i++) { Assert.Equal(transactions[i], actual[i]); } Assert.Null(actualNull); }
public void GetTenRecentlyAddedTransactionsTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Wallet wallet1 = new Wallet(Guid.NewGuid(), "Wall_let", "desc", "UAH", 0, Guid.NewGuid()); List <Transaction> transactions = new List <Transaction>(); for (int i = 1; i <= 12; i++) { Transaction transaction1 = new Transaction(Guid.NewGuid(), i * 10.10M, "UAH", category1, "", DateTimeOffset.Now); transactions.Add(transaction1); wallet1.AddTransaction(transaction1); } // Act List <Transaction> actual = wallet1.GetTenRecentlyAddedTransactions(); // Assert for (int i = actual.Count - 1; i >= 0; i--) { Assert.Equal(transactions[i + (transactions.Count - actual.Count)], actual[i]); } }
public void GetTenRecentlyAddedTransactionsTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Wallet wallet1 = new Wallet(1) { Name = "Wall_let", Currency = "UAH" }; List <Transaction> transactions = new List <Transaction>(); for (int i = 1; i <= 12; i++) { Transaction transaction1 = new Transaction(i) { Sum = i * 10.10M, Currency = "UAH", Category = category1, Date = DateTime.Today }; transactions.Add(transaction1); wallet1.AddTransaction(transaction1); } // Act List <Transaction> actual = wallet1.GetTenRecentlyAddedTransactions(); // Assert for (int i = actual.Count - 1; i >= 0; i--) { Assert.Equal(transactions[i + (transactions.Count - actual.Count)], actual[i]); } }
public void AddTransactionTest() { // Arrange Category categoryHealth = new Category(1) { Name = "Health", Color = Color.Green }; Category categoryEat = new Category(2) { Name = "Eat", Color = Color.Red }; Wallet walletNoCategories = new Wallet(1) { Name = "Without categories", Currency = "UAH" }; Wallet walletHealthCategory = new Wallet(2) { Name = "With category (Health)", Currency = "USD" }; walletHealthCategory.AddCategory(categoryHealth); Transaction transactionEat = new Transaction(1) { Sum = -10.10M, Currency = "UAH", Category = categoryEat, Date = DateTime.Today }; Transaction transactionHealth = new Transaction(2) { Sum = -2.02M, Currency = "UAH", Category = categoryHealth, Date = DateTime.Today }; // Act bool wncAddTe = walletNoCategories.AddTransaction(transactionEat); bool wncAddTh = walletNoCategories.AddTransaction(transactionHealth); bool whcAddTe = walletHealthCategory.AddTransaction(transactionEat); bool whcAddTh = walletHealthCategory.AddTransaction(transactionHealth); // Assert Assert.True(wncAddTe); Assert.True(wncAddTh); Assert.Equal(2, walletNoCategories.GetTenRecentlyAddedTransactions().Count); Assert.False(whcAddTe); Assert.True(whcAddTh); Assert.Single(walletHealthCategory.GetTenRecentlyAddedTransactions()); }
public void EditTransactionTest() { //Arrange var owner = new User() { Id = id1, Name = "Liza", Surname = "Andriienko", Email = "*****@*****.**" }; List <Category> categories = new List <Category>(); var category0 = new Category(owner, "Food", Colors.Red, new FileInfo("coins.txt"), Guid.NewGuid()); var category1 = new Category(owner, "Restaurants", Colors.Blue, new FileInfo("coins.txt"), Guid.NewGuid()); categories.Add(category0); categories.Add(category1); owner.Categories = categories; var wallet = new Wallet(owner) { Id = id2, Name = "Wallet1", InitialBalance = 505.3m, Description = "new wallet" }; var transaction = new Transaction() { Id = id3, Sum = 275.89m, Currency = Currencies.USD, Description = "new transaction", Date = new DateTimeOffset(2021, 7, 20, 14, 10, 5, new TimeSpan(2, 0, 0)), Category = category0 }; //Act wallet.AddTransaction(transaction, owner.Id, false); wallet.EditCategoryOfTransaction(id3, category1, id1); wallet.EditCurrencyOfTransaction(id3, Currencies.EUR, id1); var newDate = new DateTimeOffset(2021, 6, 5, 3, 7, 2, new TimeSpan(2, 0, 0)); wallet.EditDateOfTransaction(id3, newDate, id1); wallet.EditFilesOfTransaction(id3, null, id1); wallet.EditSumOfTransaction(id3, 100, id1); var copyTr = wallet.GetCopyOfTransaction(id3); var actualCategory = copyTr.Category.Equals(category1); var actualCurrency = copyTr.Currency == Currencies.EUR; var actualDate = copyTr.Date.Equals(newDate); var actualSum = copyTr.Sum == 100; //Assert Assert.True(actualCategory); Assert.True(actualCurrency); Assert.True(actualDate); Assert.True(actualSum); }
public void CurrentBalanceTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Category category2 = new Category(2) { Name = "Health", Color = Color.Green }; decimal initialBalance = 50.00M; Wallet wallet1 = new Wallet(1) { Name = "Wall_let", Currency = "UAH", InitialBalance = initialBalance }; Transaction transaction1 = new Transaction(1) { Sum = 10.10M, Currency = "UAH", Category = category1, Date = DateTime.Today }; Transaction transaction2 = new Transaction(2) { Sum = -5.19M, Currency = "UAH", Category = category2, Date = DateTime.Today }; Transaction transaction3 = new Transaction(3) { Sum = 32.32M, Currency = "UAH", Category = category1, Date = DateTime.Today }; wallet1.AddTransaction(transaction1); wallet1.AddTransaction(transaction2); wallet1.AddTransaction(transaction3); decimal expected = initialBalance + transaction1.Sum + transaction2.Sum + transaction3.Sum; // Act decimal actual = wallet1.CurrentBalance; // Assert Assert.Equal(expected, actual); }
public async Task <Wallet> LoadWalletTransactions(Wallet wallet) { List <Transaction> transactions = await _storage.GetAllAsyncForObject(wallet); foreach (var transaction in transactions) { wallet.AddTransaction(AuthenticationService.CurrentUser, transaction); } return(wallet); }
public void ExpensesTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Category category2 = new Category(2) { Name = "Health", Color = Color.Green }; Wallet wallet1 = new Wallet(1) { Name = "Wall_let", Currency = "UAH" }; Transaction transaction1 = new Transaction(1) { Sum = 10.10M, Currency = "UAH", Category = category1, Date = DateTime.Today }; Transaction transaction2 = new Transaction(2) { Sum = -5.19M, Currency = "UAH", Category = category2, Date = DateTime.Today }; Transaction transaction3 = new Transaction(3) { Sum = -32.32M, Currency = "UAH", Category = category2, Date = DateTime.Today }; wallet1.AddTransaction(transaction1); wallet1.AddTransaction(transaction2); wallet1.AddTransaction(transaction3); decimal expected = Math.Abs(transaction2.Sum + transaction3.Sum); // Act decimal actual = wallet1.Expenses(DateTime.Today, DateTime.Today); // Assert Assert.Equal(expected, actual); }
// Start is called before the first frame update void Start() { Characters = model.Characters.Select(c => new Character(c)).ToList(); BattleGroup = new List <Character>(); for (int i = 0; i < Math.Min(3, Characters.Count); i++) { AssingToBattle(Characters[i]); } Wallet = new Wallet(); Wallet.AddTransaction(CurrencyType.Food, model.Food); }
public void ExpensesForCurrentMonthTest() { // Arrange Category category1 = new Category(1) { Name = "Health", Color = Color.Green }; Wallet wallet1 = new Wallet(1) { Name = "Wall_let", Currency = "UAH" }; Transaction transaction1 = new Transaction(1) { Sum = -10.10M, Currency = "UAH", Category = category1, Date = DateTime.Today }; Transaction transaction2 = new Transaction(2) { Sum = -132.32M, Currency = "UAH", Category = category1, Date = DateTime.Today }; Transaction transaction3 = new Transaction(3) { Sum = -43.76M, Currency = "UAH", Category = category1, Date = new DateTime(DateTime.Today.Year, DateTime.Today.Month - 1, DateTime.Today.Day) }; wallet1.AddTransaction(transaction1); wallet1.AddTransaction(transaction2); wallet1.AddTransaction(transaction3); decimal expected = Math.Abs(transaction1.Sum + transaction2.Sum); // Act decimal actual = wallet1.ExpensesForCurrentMonth(); // Assert Assert.Equal(expected, actual); }
public void IncomesForCurrentMonthTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Wallet wallet1 = new Wallet(1) { Name = "Wall_let", Currency = "UAH" }; Transaction transaction1 = new Transaction(1) { Sum = 10.10M, Currency = "UAH", Category = category1, Date = DateTime.Today }; Transaction transaction2 = new Transaction(2) { Sum = 132.32M, Currency = "UAH", Category = category1, Date = DateTime.Today }; Transaction transaction3 = new Transaction(3) { Sum = 43.76M, Currency = "UAH", Category = category1, Date = new DateTime(DateTime.Today.Year, DateTime.Today.Month - 1, DateTime.Today.Day) }; wallet1.AddTransaction(transaction1); wallet1.AddTransaction(transaction2); wallet1.AddTransaction(transaction3); decimal expected = transaction1.Sum + transaction2.Sum; // Act decimal actual = wallet1.IncomesForCurrentMonth(); // Assert Assert.Equal(expected, actual); }
public async Task GetTransactionsAsync() { var dbTransactions = await _storage.GetAllAsync(Wallet.Id.ToString("N")); foreach (var dbTransaction in dbTransactions) { var transaction = new Transaction(Wallet, dbTransaction.Guid, dbTransaction.Sum, dbTransaction.Currency, dbTransaction.Date, Wallet.Owner.GetCategory(dbTransaction.Category)); transaction.Description = dbTransaction.Description; _transactions.Add(transaction); Wallet.AddTransaction(transaction, Wallet.Owner.Id, true); } }
public void AddTransactionTest() { //Arrange var owner = new User() { Id = id1, Name = "Liza", Surname = "Andriienko", Email = "*****@*****.**" }; List <Category> categories = new List <Category>(); var category = new Category(owner, "Food", Colors.Red, new FileInfo("coins.txt"), Guid.NewGuid()); categories.Add(category); owner.Categories = categories; var wallet = new Wallet(owner) { Id = id2, Name = "Wallet1", InitialBalance = 505.3m, Description = "new wallet" }; var transaction = new Transaction() { Id = id1, Sum = 275.89m, Currency = Currencies.USD, Description = "new transaction", Date = new DateTimeOffset(2021, 7, 20, 14, 10, 5, new TimeSpan(2, 0, 0)), Category = category }; //Act wallet.AddTransaction(transaction, owner.Id, false); var actual = (wallet.TransactionsAmount() == 1 && wallet.CurrentBalance == (wallet.InitialBalance + transaction.Sum)); //Assert //Assert.True(actual); Assert.False(actual); }
public void GetTransactionTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Wallet wallet1 = new Wallet(Guid.NewGuid(), "Wall_let", "desc", "UAH", 0, Guid.NewGuid()); Transaction transaction1 = new Transaction(Guid.NewGuid(), 10.10M, "UAH", category1, "", DateTimeOffset.Now); wallet1.AddTransaction(transaction1); // Act Transaction actualNonNull = wallet1.GetTransaction(1); Transaction actualNull = wallet1.GetTransaction(0); // Assert Assert.Equal(transaction1, actualNonNull); Assert.Null(actualNull); }
public void RemoveTransactionByIndexTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Wallet wallet1 = new Wallet(Guid.NewGuid(), "Wall_let", "desc", "UAH", 0, Guid.NewGuid()); Transaction transaction1 = new Transaction(Guid.NewGuid(), 10.10M, "UAH", category1, "", DateTimeOffset.Now); wallet1.AddTransaction(transaction1); // Act bool remT1 = wallet1.RemoveTransaction(1); bool remT2 = wallet1.RemoveTransaction(0); // Assert Assert.True(remT1); Assert.False(remT2); }
public void GetTransactionsTest() { // Arrange Category category1 = new Category(1) { Name = "Salary", Color = Color.Blue }; Wallet wallet1 = new Wallet(1) { Name = "Wall_let", Currency = "UAH" }; List <Transaction> transactions = new List <Transaction>(); for (int i = 1; i <= 12; i++) { Transaction transaction1 = new Transaction(i) { Sum = i * 10.10M, Currency = "UAH", Category = category1, Date = DateTime.Today }; transactions.Add(transaction1); wallet1.AddTransaction(transaction1); } // Act List <Transaction> actual = wallet1.GetTransactions(1, 10); List <Transaction> actualNull = wallet1.GetTransactions(0, 100); // Assert for (int i = 0; i < 10; i++) { Assert.Equal(transactions[i], actual[i]); } Assert.Null(actualNull); }
public async void AddTransaction() { try { if (_addTransaction.MoneyAmount == 0.0m)//|| _addTransaction.Category == null || _addTransaction.Currency == null) { // MessageBox.Show("Please, choose money amount,category and currency"); MessageBox.Show("Please, choose money amount"); return; } if (_addTransaction.Category == null) { MessageBox.Show("Please, choose category"); return; } if (_addTransaction.Currency == null) { MessageBox.Show("Please, choose currency"); return; } if (_addTransaction.Date == null) { MessageBox.Show("Please, choose date"); return; } if (DateTime.Compare(_addTransaction.Date.Value, DateTime.Today.AddDays(1)) > 0) { MessageBox.Show($" {_addTransaction.Date.Value} - Please, don`t look in the future..."); return; } IsEnabled = false; _addTransaction.Guid = Guid.NewGuid(); _wallet.AddTransaction(CurrentInformation.User, _addTransaction); //TODO: MAKE METHOD FOR UPDATE AFTER TRANSACTION await Task.Run(() => _walService.AddOrUpdateWalletAsync(_wallet)); await Task.Run(() => _tranService.AddOrUpdateTransactionAsync(_addTransaction)); MessageBox.Show("Adding wallet transaction completed!"); UpdateTransactionsCollection(); RaisePropertyChanged(nameof(DisplayName)); RaisePropertyChanged(nameof(Transactions)); RaisePropertyChanged(nameof(TenTransactions)); RaisePropertyChanged(nameof(LastMonthIncome)); RaisePropertyChanged(nameof(LastMonthExpense)); } catch (Exception ex) { MessageBox.Show($"Adding wallet transaction failed {ex.Message}"); } finally // is done independently from exception { IsEnabled = true; } }
public void CheckSpendingsTest() { //Arrange var owner = new User() { Id = id1, Name = "Liza", Surname = "Andriienko", Email = "*****@*****.**" }; List <Category> categories = new List <Category>(); var category0 = new Category(owner, "Food", Colors.Red, new FileInfo("coins.txt"), Guid.NewGuid()); var category1 = new Category(owner, "Restaurants", Colors.Blue, new FileInfo("coins.txt"), Guid.NewGuid()); categories.Add(category0); categories.Add(category1); owner.Categories = categories; var wallet = new Wallet(owner) { Id = id2, Name = "Wallet1", InitialBalance = 0, Description = "new wallet", MainCurrency = Currencies.USD }; var transaction1 = new Transaction() { Id = id1, Sum = 275.5m, Currency = Currencies.USD, Description = "new transaction", Date = new DateTimeOffset(2021, 3, 20, 14, 10, 5, new TimeSpan(2, 0, 0)), Category = category0 }; var transaction2 = new Transaction() { Id = id2, Sum = 83.1m, Currency = Currencies.UAH, Description = "transaction in UAH", Date = new DateTimeOffset(2021, 3, 20, 14, 10, 5, new TimeSpan(2, 0, 0)), Category = category1, Files = new List <FileInfo>() }; var transaction3 = new Transaction() { Id = id3, Sum = -95.2m, Currency = Currencies.EUR, Description = "transaction in EUR", Date = new DateTimeOffset(2021, 3, 22, 18, 20, 5, new TimeSpan(2, 0, 0)), Category = category0 }; //Act wallet.AddTransaction(transaction1, owner.Id, false); wallet.AddTransaction(transaction2, owner.Id, false); wallet.AddTransaction(transaction3, owner.Id, false); var actualIncome = wallet.GeneralSumOfIncomeForMonth() == (decimal)278.5; var actualSpendings = wallet.GeneralSumOfSpendingsForMonth() == (decimal)80; //Assert //Assert.True(actualIncome); Assert.False(actualIncome); Assert.False(actualSpendings); }