public async Task VerifyChain_IsValid_IfNoTampering() { // Arrange List <Block <Transaction> > blocks = new List <Block <Transaction> >(); SetupMock(blocks); foreach (int i in Enumerable.Range(0, 10)) { Transaction transaction = new Transaction { ID = i, TransactionTotal = 5023.2f, Comment = "This is a comment" }; Block <Transaction> block = await _sut.ConstructBlock(transaction, _signerId, _keys.PublicKey); string signature = Signer.Sign(_keys.PrivateKey, block.BlockHash); block.ApplySignature(signature); await _sut.AcceptNewBlock(block); } // Act await _sut.VerifyChain(); // Assert - It passes when the action did not produce an exception _blockRepositoryMock.Verify(o => o.GetBlockByNumber(It.IsAny <long>()), Times.AtLeast(2)); }