diff --git a/Cargo.lock b/Cargo.lock index ac515e88b..5feaa4458 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8854,7 +8854,10 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", + "sov-modules-api", "sov-rollup-interface", + "sov-state", + "tempfile", "thiserror", ] diff --git a/module-system/sov-modules-core/Cargo.toml b/module-system/sov-modules-core/Cargo.toml index 9f4a96ab1..4ecdf89e5 100644 --- a/module-system/sov-modules-core/Cargo.toml +++ b/module-system/sov-modules-core/Cargo.toml @@ -34,6 +34,9 @@ sov-rollup-interface = { path = "../../rollup-interface", default-features = fal [dev-dependencies] proptest = { workspace = true } serde_json = { workspace = true } +tempfile = { workspace = true } +sov-state = { path = "../sov-state", features = ["native"] } +sov-modules-api = { path = "../sov-modules-api", features = ["native"] } [features] diff --git a/module-system/sov-modules-core/tests/working_set_tests.rs b/module-system/sov-modules-core/tests/working_set_tests.rs new file mode 100644 index 000000000..024204b21 --- /dev/null +++ b/module-system/sov-modules-core/tests/working_set_tests.rs @@ -0,0 +1,21 @@ +use sov_modules_api::default_context::DefaultContext; +use sov_modules_core::{StateReaderAndWriter, StorageKey, StorageValue, WorkingSet}; +use sov_state::codec::BcsCodec; +use sov_state::ProverStorage; + +#[test] +fn test_workingset_get() { + let tempdir = tempfile::tempdir().unwrap(); + let path = tempdir.path(); + let codec = BcsCodec {}; + let storage = ProverStorage::::with_path(path).unwrap(); + + let prefix = sov_modules_core::Prefix::new(vec![1, 2, 3]); + let storage_key = StorageKey::new(&prefix, &vec![4, 5, 6], &codec); + let storage_value = StorageValue::new(&vec![7, 8, 9], &codec); + + let mut working_set = WorkingSet::::new(storage.clone()); + working_set.set(&storage_key, storage_value.clone()); + + assert_eq!(Some(storage_value), working_set.get(&storage_key)); +}