Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Commit

Permalink
added tests for StorageNMap
Browse files Browse the repository at this point in the history
Signed-off-by: muraca <mmuraca247@gmail.com>
  • Loading branch information
muraca committed Jan 30, 2023
1 parent 5e32f06 commit f24a0ed
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions frame/support/src/storage/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1491,7 +1491,7 @@ pub fn storage_prefix(pallet_name: &[u8], storage_name: &[u8]) -> [u8; 32] {
#[cfg(test)]
mod test {
use super::*;
use crate::{assert_ok, hash::Identity, Twox128};
use crate::{assert_ok, hash::Identity, pallet_prelude::NMapKey, Twox128};
use bounded_vec::BoundedVec;
use frame_support::traits::ConstU32;
use generator::StorageValue as _;
Expand Down Expand Up @@ -1786,19 +1786,37 @@ mod test {
#[crate::storage_alias]
type FooDoubleMap =
StorageDoubleMap<Prefix, Twox128, u32, Twox128, u32, BoundedVec<u32, ConstU32<7>>>;
#[crate::storage_alias]
type FooTripleMap = StorageNMap<
Prefix,
(NMapKey<Twox128, u32>, NMapKey<Twox128, u32>, NMapKey<Twox128, u32>),
u64,
>;

#[test]
fn contains_prefix_works() {
TestExternalities::default().execute_with(|| {
assert!(FooDoubleMap::iter_prefix_values(0).next().is_none());
assert_eq!(FooDoubleMap::contains_prefix(0), false);
// Test double maps
assert!(FooDoubleMap::iter_prefix_values(1).next().is_none());
assert_eq!(FooDoubleMap::contains_prefix(1), false);

assert_ok!(FooDoubleMap::try_append(1, 1, 4));
assert_ok!(FooDoubleMap::try_append(2, 1, 4));
assert!(FooDoubleMap::iter_prefix_values(1).next().is_some());
assert!(FooDoubleMap::contains_prefix(1));
FooDoubleMap::remove(1, 1);
assert_eq!(FooDoubleMap::contains_prefix(1), false);

// Test N Maps
assert!(FooTripleMap::iter_prefix_values((1,)).next().is_none());
assert_eq!(FooTripleMap::contains_prefix((1,)), false);

FooTripleMap::insert((1, 1, 1), 4);
FooTripleMap::insert((2, 1, 1), 4);
assert!(FooTripleMap::iter_prefix_values((1,)).next().is_some());
assert!(FooTripleMap::contains_prefix((1,)));
FooTripleMap::remove((1, 1, 1));
assert_eq!(FooTripleMap::contains_prefix((1,)), false);
});
}

Expand Down

0 comments on commit f24a0ed

Please sign in to comment.