public void GetPreviousDifficultyUpdateInformation_Calls_BlockchainCurrentHeight() { var difficultyUpdateCycle = 10; var blockchainHeight = -1; var selfCallingMock = new Mock <DifficultyCalculator>(MockBehavior.Strict); var blockchainMock = new Mock <Blockchain>(MockBehavior.Strict, new object[] { _netId }); blockchainMock.Setup(m => m.CurrentHeight).Returns(blockchainHeight); var blockchain = blockchainMock.Object; BlockDifficultyUpdate expectedInformation = new BlockDifficultyUpdate(blockchain, -1, -1); selfCallingMock.Setup(m => m.GetPreviousDifficultyUpdateInformation(blockchain, difficultyUpdateCycle)).CallBase(); selfCallingMock.Setup(m => m.GetPreviousDifficultyUpdateInformation(blockchainHeight, blockchain, difficultyUpdateCycle)).Returns(expectedInformation); var result = selfCallingMock.Object.GetPreviousDifficultyUpdateInformation(blockchain, difficultyUpdateCycle); Assert.AreEqual(expectedInformation, result); selfCallingMock.VerifyAll(); blockchainMock.VerifyAll(); }
public void GetPreviousDifficultyUpdateInformationFull_ForHeight62_ReturnsCorrectInformation() { var difficultyUpdateCycle = 10; var blockchainHeight = 63; // = index and that starts at zero. var sut = new DifficultyCalculator(); var blocks = new List <Block>(); // Add 64 blocks for (int i = 10; i < 641; i = i + 10) { blocks.Add(new Block(new BlockHeader(_netId, _protocol, "abc", i, ""), new List <AbstractTransaction>())); } var blockchain = new Blockchain(blocks, _netId); BlockDifficultyUpdate result = sut.GetPreviousDifficultyUpdateInformation(blockchainHeight, blockchain, difficultyUpdateCycle); Assert.AreEqual(blockchain, result.Blockchain); Assert.AreEqual(50, result.BeginHeight); Assert.AreEqual(59, result.EndHeight); Assert.AreEqual(90, result.TotalSecondsForBlocks); // It took 90 seconds to create 9 blocks }