public void ThenTheContentOfTheTAccountIs(string accountNumber, string ledgerName, Table table) { var ledger = this.cc.GetContext().Ledgers.FirstOrDefault(o => o.Name == ledgerName); var service = new TAccountService(this.cc.GetContext()); var account = service.GetAggregatedAccountByNumber(ledger, accountNumber); foreach (var r in table.Rows) { var transDebit = r["TransDebit"]; var transCredit = r["TransCredit"]; var debitAmount = r["Debit"]; var creditAmount = r["Credit"]; if (!string.IsNullOrWhiteSpace(transDebit)) { var transNb = int.Parse(transDebit); var trans = account.Entries.First(o => o.Transaction.Sequence == transNb); trans.Type.Should().Be(TAccount_EntryType.Debit); trans.Amount.Should().Be(decimal.Parse(debitAmount)); } if (!string.IsNullOrWhiteSpace(transCredit)) { var transNb = int.Parse(transCredit); var trans = account.Entries.First(o => o.Transaction.Sequence == transNb); trans.Type.Should().Be(TAccount_EntryType.Credit); trans.Amount.Should().Be(decimal.Parse(creditAmount)); } } }
public void WhenICreateTheT_AccountWithTheProperties(string reference, Table table) { var service = new TAccountService(cc.GetContext()); var account = service.CreateTAccount(); foreach (var r in table.Rows) { var property = r["Property"]; var value = r["Value"]; switch (property) { case "Ledger": { var ledger = cc.GetContext().Ledgers.FirstOrDefault(o => o.Name == value); account.Ledger = ledger; } break; case "Number": { account.Number = value; } break; case "Label": { account.Label = value; } break; } } cc.GetContext().SaveChanges(); }
public void ThenTheCreditBalanceOfTheTAccountOnLedgerIs(string accountNumber, string ledgerName, Decimal expected) { var ledger = this.cc.GetContext().Ledgers.FirstOrDefault(o => o.Name == ledgerName); var service = new TAccountService(this.cc.GetContext()); var account = service.GetAggregatedAccountByNumber(ledger, accountNumber); var amount = service.GetCreditBalance(account); amount.Should().Be(expected); }
public void GivenICreateMultipleTAccounts(Table table) { var service = new TAccountService(cc.GetContext()); foreach (var r in table.Rows) { var number = r["Number"]; var ledgerStr = r["Ledger"]; var label = r["Label"]; var ledger = cc.GetContext().Ledgers.FirstOrDefault(o => o.Name == ledgerStr); var account = service.CreateTAccount(); account.Number = number; account.Label = label; account.Ledger = ledger; } cc.GetContext().SaveChanges(); }
public void GivenILoadT_AccountsFromFile(string resFile, string ledgerRef) { var ledger = (Ledger)cc.ObjectBag[$"ledger-{ledgerRef}"]; cc.GetContext().Entry(ledger).Reload(); var accountService = new TAccountService(cc.GetContext()); var content = GetAssemblyData($"AccountingNET.Tests.Resources.TAccounts.{resFile}"); var accounts = JsonConvert.DeserializeObject <List <tAccountFromFile> >(content); foreach (var a in accounts) { var c = accountService.CreateTAccount(); c.Ledger = ledger; c.Label = a.Label; c.Number = a.Number; } cc.GetContext().SaveChanges(); }
public void WhenIRecordATransactionOnLedger(string reference, string ledgerName, Table table) { var ledger = this.cc.GetContext().Ledgers.FirstOrDefault(o => o.Name == ledgerName); var transactionService = new TransactionService(this.cc.GetContext()); var accountService = new TAccountService(cc.GetContext()); var trans = transactionService.CreateTransaction(ledger); foreach (var r in table.Rows) { var creditStr = r["Credit"]; var debitStr = r["Debit"]; var creditAmountStr = r["Amount Credit"]; var debitAmountStr = r["Amount Debit"]; decimal?creditAmount = null; decimal?debitAmount = null; if (!string.IsNullOrWhiteSpace(creditAmountStr)) { creditAmount = decimal.Parse(creditAmountStr); } if (!string.IsNullOrWhiteSpace(debitAmountStr)) { debitAmount = decimal.Parse(debitAmountStr); } var debitAccount = accountService.GetAccountByNumber(ledger, debitStr); var creditAccount = accountService.GetAccountByNumber(ledger, creditStr); transactionService.AddEntryToTransaction( trans, debitAccount, creditAccount, debitAmount, creditAmount ); } this.cc.GetContext().SaveChanges(); this.cc.ObjectBag["transaction-" + reference] = trans; }