use ckb_hash::blake2b_256;
use ckb_types::{core::tx_pool::Reject, packed::Byte32};
use crate::component::recent_reject::RecentReject;
#[test]
fn test_basic() {
let tmp_dir = tempfile::Builder::new().tempdir().unwrap();
let shard_num = 2;
let limit = 100;
let ttl = -1;
let mut recent_reject = RecentReject::build(tmp_dir.path(), shard_num, limit, ttl).unwrap();
for i in 0..80u64 {
let key = Byte32::new(blake2b_256(i.to_le_bytes()));
recent_reject
.put(&key, Reject::Malformed(i.to_string(), Default::default()))
.unwrap();
}
for i in 0..80u64 {
let key = Byte32::new(blake2b_256(i.to_le_bytes()));
let reject: ckb_jsonrpc_types::PoolTransactionReject =
Reject::Malformed(i.to_string(), Default::default()).into();
assert_eq!(
recent_reject.get(&key).unwrap().unwrap(),
serde_json::to_string(&reject).unwrap()
)
}
for i in 0..80u64 {
let key = Byte32::new(blake2b_256(i.to_le_bytes()));
recent_reject
.put(&key, Reject::Malformed(i.to_string(), Default::default()))
.unwrap();
}
assert!(recent_reject.total_keys_num < 100);
}