コード例 #1
0
        public void Test_broadcast_and_receive_block_to_3_miners()
        {
            _blockFactoryMock = new Mock <IBlockFactory>();
            _blockFactoryMock.Setup(e => e.GenerateGenesisBlock()).Returns(_genesisBlock);
            _blockFactoryMock.Setup(e => e.GetBlockHash(It.IsAny <Block>()))
            .Returns(string.Empty);

            var firstMiner = new Miner(_blockFactoryMock.Object,
                                       _unconfirmedDataStack.Object);
            var secondMiner = new Miner(_blockFactoryMock.Object,
                                        _unconfirmedDataStack.Object, firstMiner);
            var thirdMiner = new Miner(_blockFactoryMock.Object,
                                       _unconfirmedDataStack.Object, firstMiner);

            var block = new Block(1,
                                  DateTime.MaxValue,
                                  string.Empty,
                                  string.Empty,
                                  "ImDummy",
                                  1);

            firstMiner.BroadCastBlock(block);

            Assert.That(firstMiner.Blockchain.Count(), Is.EqualTo(2));
            Assert.That(secondMiner.Blockchain.Count(), Is.EqualTo(2));
            Assert.That(thirdMiner.Blockchain.Count(), Is.EqualTo(2));
        }