public void BlockchainCreator_Create_Should_Return_Valid_New_Block() { var bc = new BlockchainCreator(); var headBlock = new Block() { BlockHash = "BLOCK_TEST", BlockHashPrevious = "BLOCK_TEST2", Length = 10, Messages = new List <EncryptedMessage>(), Nonce = 321, Timestamp = 1000 }; var messages = new List <EncryptedMessage>(); for (int i = 0; i < 5; i++) { messages.Add(MessageHelper.GetTestEncryptedMessage("t" + i, "c" + i)); } var newBlock = bc.Create(headBlock, messages, (d) => 876); Assert.NotNull(newBlock.BlockHash); Assert.True(newBlock.Length == 11); Assert.True(newBlock.Timestamp > headBlock.Timestamp); Assert.True(newBlock.Messages.Count() == 5); Assert.True(newBlock.Nonce == 876); }
public void BlockchainValidator_Validate_Should_Return_False_When_Previous_Is_Diffrent_Than_Expected() { var bv = new BlockchainValidator(); var bc = new BlockchainCreator(); var blockPrevious = new Block() { BlockHash = "BLOCK_1", BlockHashPrevious = "BLOCK_P_1", Length = 20, Messages = new List <EncryptedMessage>(), Nonce = 123, Timestamp = 9000 }; var messages = new List <EncryptedMessage>(); for (int i = 0; i < 5; i++) { messages.Add(MessageHelper.GetTestEncryptedMessage("t" + i, "c" + i)); } var newBlock = bc.Create(blockPrevious, messages, (d) => 876); newBlock.BlockHashPrevious = "BLOCK_2"; var result = bv.Validate(newBlock, blockPrevious, (d, n) => n == 876); Assert.False(result); }