public async Task GetAsync_WithWrongBlockHeightReturnsNullAsync() { string folder = CreateTestDir(this); using (var engine = new DB(new Options() { CreateIfMissing = true }, folder)) { engine.Put(DBH.Key(ProvenBlockHeaderTable, BitConverter.GetBytes(1)), this.dataStoreSerializer.Serialize(CreateNewProvenBlockHeaderMock())); engine.Put(DBH.Key(BlockHashHeightTable, new byte[0]), this.DataStoreSerializer.Serialize(new HashHeightPair(new uint256(), 1))); } using (LeveldbProvenBlockHeaderRepository repo = this.SetupRepository(this.Network, folder)) { // Select a different block height. ProvenBlockHeader outHeader = await repo.GetAsync(2).ConfigureAwait(false); outHeader.Should().BeNull(); // Select the original item inserted into the table outHeader = await repo.GetAsync(1).ConfigureAwait(false); outHeader.Should().NotBeNull(); } }
public async Task GetAsync_ReadsProvenBlockHeaderAsync() { string folder = CreateTestDir(this); ProvenBlockHeader headerIn = CreateNewProvenBlockHeaderMock(); int blockHeight = 1; using (var engine = new DB(new Options() { CreateIfMissing = true }, folder)) { engine.Put(DBH.Key(ProvenBlockHeaderTable, BitConverter.GetBytes(blockHeight)), this.dataStoreSerializer.Serialize(headerIn)); } // Query the repository for the item that was inserted in the above code. using (LeveldbProvenBlockHeaderRepository repo = this.SetupRepository(this.Network, folder)) { var headerOut = await repo.GetAsync(blockHeight).ConfigureAwait(false); headerOut.Should().NotBeNull(); uint256.Parse(headerOut.ToString()).Should().Be(headerOut.GetHash()); } }