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)); }