diff --git a/lib/tests-tools/blocks-tests-tools/src/mocks.rs b/lib/tests-tools/blocks-tests-tools/src/mocks.rs
index 12a82525ae08f220e7536cd5da7b2e99c160ed73..5b3fe2f155c83d0dcb93e8ca742fa595de58457b 100644
--- a/lib/tests-tools/blocks-tests-tools/src/mocks.rs
+++ b/lib/tests-tools/blocks-tests-tools/src/mocks.rs
@@ -15,11 +15,13 @@
//! Mocks for projects use dubp-block-doc
+use dubp_block_doc::block::BlockDocumentTrait;
use dubp_block_doc::{BlockDocument, BlockDocumentV10};
use dubp_common_doc::blockstamp::Blockstamp;
use dubp_common_doc::{BlockHash, BlockNumber};
use dubp_currency_params::CurrencyName;
use dup_crypto::hashs::Hash;
+use dup_crypto::keys::{PubKey, Signator};
/// Generate n mock blockstamps
pub fn generate_blockstamps(n: usize) -> Vec<Blockstamp> {
@@ -55,20 +57,48 @@ pub fn gen_empty_timed_blocks_v10(n: usize, time_step: u64) -> Vec<BlockDocument
.collect()
}
-/// Generate empty timed block document
+/// Generate empty timed and issued and hashed block document
+/// (usefull for tests that need valid hashs and issuer and signature and median_time field)
+pub fn gen_empty_timed_issued_hashed_block_v10(
+ block_number: BlockNumber,
+ time: u64,
+ previous_issuer: PubKey,
+ previous_hash: Hash,
+ signator: &dup_crypto::keys::SignatorEnum,
+) -> BlockDocumentV10 {
+ let mut block = gen_empty_block_v10(block_number);
+ block.time = time;
+ block.issuers = vec![signator.public_key()];
+ block.previous_issuer = Some(previous_issuer);
+ block.previous_hash = Some(previous_hash);
+ block.inner_hash = Some(block.compute_inner_hash());
+ block.sign(signator);
+ block.hash = Some(block.compute_hash());
+ block
+}
+
+/// Generate empty timed block document with provided hashs
/// (usefull for tests that only need blockstamp and median_time fields)
pub fn gen_empty_timed_block_v10(
blockstamp: Blockstamp,
time: u64,
previous_hash: Hash,
) -> BlockDocumentV10 {
+ let mut block = gen_empty_block_v10(blockstamp.id);
+ block.median_time = time;
+ block.previous_hash = Some(previous_hash);
+ block.hash = Some(blockstamp.hash);
+ block
+}
+
+fn gen_empty_block_v10(block_number: BlockNumber) -> BlockDocumentV10 {
BlockDocumentV10 {
version: 10,
nonce: 0,
- number: blockstamp.id,
+ number: block_number,
pow_min: 0,
time: 0,
- median_time: time,
+ median_time: 0,
members_count: 0,
monetary_mass: 0,
unit_base: 0,
@@ -78,9 +108,9 @@ pub fn gen_empty_timed_block_v10(
currency: CurrencyName("test_currency".to_owned()),
issuers: vec![],
signatures: vec![],
- hash: Some(blockstamp.hash),
+ hash: None,
parameters: None,
- previous_hash: Some(previous_hash),
+ previous_hash: None,
previous_issuer: None,
dividend: None,
identities: vec![],