Ejemplo n.º 1
0
 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();
                      }
                );
        }
Ejemplo n.º 3
0
        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());
        }