Ejemplo n.º 1
0
        public void BlockChainLastBlockTest()
        {
            var blockChain = new MockBlockChain();

            var block1 = new MockBlock("block1");
            var block2 = new MockBlock("block2");
            var block3 = new MockBlock("block3");

            // no blocks
            Assert.IsNull(blockChain.GetLastBlock());

            blockChain.AddBlock(block1);
            var lastBlock = blockChain.GetLastBlock();

            Assert.AreEqual(block1, lastBlock);

            blockChain.AddBlock(block2);
            lastBlock = blockChain.GetLastBlock();
            Assert.AreNotEqual(block1, lastBlock);
            Assert.AreEqual(block2, lastBlock);

            blockChain.AddBlock(block3);
            lastBlock = blockChain.GetLastBlock();
            Assert.AreNotEqual(block1, lastBlock);
            Assert.AreNotEqual(block2, lastBlock);
            Assert.AreEqual(block3, lastBlock);
        }
Ejemplo n.º 2
0
        public void BlockChainHashLinkingTest()
        {
            var blockChain = new MockBlockChain();

            var block1 = new MockBlock("block1");
            var block2 = new MockBlock("block2");
            var block3 = new MockBlock("block3");

            // no blocks
            Assert.AreEqual(NO_PREVIOUS_BLOCK_HASH, blockChain.LastBlockHash);

            Assert.IsNull(block1.PreviousBlockHash);
            blockChain.AddBlock(block1);
            Assert.AreEqual(NO_PREVIOUS_BLOCK_HASH, block1.PreviousBlockHash);
            Assert.AreEqual(block1.Hash, blockChain.LastBlockHash);

            Assert.IsNull(block2.PreviousBlockHash);
            blockChain.AddBlock(block2);
            Assert.AreEqual(block1.Hash, block2.PreviousBlockHash);
            Assert.AreEqual(block2.Hash, blockChain.LastBlockHash);

            Assert.IsNull(block3.PreviousBlockHash);
            blockChain.AddBlock(block3);
            Assert.AreEqual(block2.Hash, block3.PreviousBlockHash);
            Assert.AreEqual(block3.Hash, blockChain.LastBlockHash);
        }