From 526f2f023e4b46bf6db72be00ee44b16c37fe765 Mon Sep 17 00:00:00 2001 From: NikVolf Date: Fri, 21 Oct 2016 19:31:33 +0300 Subject: [PATCH] test storage stub --- db/src/lib.rs | 2 +- verification/src/chain_verifier.rs | 61 ++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/db/src/lib.rs b/db/src/lib.rs index 3b341cf2..dc826523 100644 --- a/db/src/lib.rs +++ b/db/src/lib.rs @@ -21,5 +21,5 @@ pub enum BlockRef { Hash(primitives::hash::H256), } -pub use storage::{Storage, Store}; +pub use storage::{Storage, Store, Error}; pub use kvdb::Database; diff --git a/verification/src/chain_verifier.rs b/verification/src/chain_verifier.rs index 77dba1f8..b46eb5f1 100644 --- a/verification/src/chain_verifier.rs +++ b/verification/src/chain_verifier.rs @@ -15,3 +15,64 @@ impl Verify for ChainVerifier { Ok(Chain::Main) } } + +#[cfg(test)] +mod tests { + + use primitives::hash::H256; + use chain; + use std::collections::HashMap; + use db::{self, BlockRef, Store}; + use serialization; + use serialization::bytes::Bytes; + + struct TestStorage { + blocks: HashMap, + heights: HashMap, + } + + impl TestStorage { + fn resolve_hash(&self, block_ref: BlockRef) -> Option { + match block_ref { + BlockRef::Number(n) => self.block_hash(n), + BlockRef::Hash(h) => Some(h), + } + } + } + + impl Store for TestStorage { + fn block_hash(&self, number: u64) -> Option { + self.heights.get(&(number as usize)).map(|h| h.clone()) + } + + fn block_header_bytes(&self, block_ref: BlockRef) -> Option { + None + } + + fn block_transaction_hashes(&self, block_ref: BlockRef) -> Vec { + Vec::new() + } + + fn transaction_bytes(&self, hash: &H256) -> Option { + None + } + + fn transaction(&self, hash: &H256) -> Option { + None + } + + fn block_transactions(&self, block_ref: BlockRef) -> Vec { + Vec::new() + } + + fn block(&self, block_ref: BlockRef) -> Option { + None + } + + fn insert_block(&self, block: &chain::Block) -> Result<(), db::Error> { + Ok(()) + } + } + + +}