public void ExecuteTransaction() { var transaction = CreateTransaction(100); var addr1 = transaction.Sender; var addr2 = transaction.Receiver; var store = new AccountsState(); AccountsState newstore = null; store = store.Put(addr1, new AccountState(new BigInteger(200), 0)); var processor = new TransactionProcessor(); Assert.IsTrue(processor.ExecuteTransaction(transaction, store, ref newstore)); Assert.IsNotNull(newstore); Assert.AreNotSame(store, newstore); Assert.AreEqual(new BigInteger(200), store.Get(addr1).Balance); Assert.AreEqual(BigInteger.Zero, store.Get(addr2).Balance); Assert.AreEqual(new BigInteger(100), newstore.Get(addr1).Balance); Assert.AreEqual(new BigInteger(100), newstore.Get(addr2).Balance); }
public void ExecuteBlockWithTransactionWithoutFunds() { Transaction tx = CreateTransaction(100); Block block = new Block(0, null, new Transaction[] { tx }); var state = new AccountsState(); var processor = new TransactionProcessor(); var result = processor.ExecuteBlock(block, state); Assert.IsNotNull(result); Assert.AreSame(state, result); Assert.AreEqual(BigInteger.Zero, state.Get(tx.Sender).Balance); Assert.AreEqual(BigInteger.Zero, state.Get(tx.Receiver).Balance); }
public void ExecuteTransactionWithoutFunds() { var transaction = CreateTransaction(100); var addr1 = transaction.Sender; var addr2 = transaction.Receiver; var store = new AccountsState(); AccountsState newstore = null; var processor = new TransactionProcessor(); Assert.IsFalse(processor.ExecuteTransaction(transaction, store, ref newstore)); Assert.IsNull(newstore); Assert.AreEqual(BigInteger.Zero, store.Get(addr1).Balance); Assert.AreEqual(BigInteger.Zero, store.Get(addr2).Balance); }