public void WhenTransactionExecutedMoreThenOnceThenExceptionGenerated() { var tx = new AccountingTransaction("tx1", new Account("acc1"), new Account("acc2"), 0.0m); tx.Execute(); Assert.Throws<InvalidOperationException>(tx.Execute); }
public void WhenAccountsCreatedAreCreatedInDatabaseAndTransactionExecutedThenOk() { OnUow(() => { var acc1 = new Account("root"); var acc2 = new Account("some another"); var tx = new AccountingTransaction("tx1", acc1, acc2, 42.0m); tx.Execute(); } ); }
public void WhenTransactionExecutedOnPairedAccountsThenParametersCalculated() { var rootAccount = new Account("root"); var accIncome = rootAccount.CreateSubaccount("income"); var accOutcome = rootAccount.CreateSubaccount("expences"); const decimal amount = 77.0m; var tx = new AccountingTransaction("tx1", accIncome, accOutcome, amount); tx.Execute(); Assert.AreEqual(0.0m, accIncome.CreditTurnover); Assert.AreEqual(amount, accIncome.DebtTurnover); Assert.AreEqual(-amount, accIncome.GetBalance()); Assert.AreEqual(0.0m, accOutcome.DebtTurnover); Assert.AreEqual(amount, accOutcome.CreditTurnover); Assert.AreEqual(amount, accOutcome.GetBalance()); Assert.AreEqual(0.0m, rootAccount.GetBalance()); Assert.AreEqual(2 * amount, rootAccount.GetTurnover()); }