11use std:: collections:: HashMap ;
22
3+ use indexmap:: indexmap;
34use serde_json:: json;
45
6+ use super :: ThinStateDiff ;
7+ use crate :: core:: { ClassHash , CompiledClassHash , Nonce } ;
58use crate :: deprecated_contract_class:: EntryPointOffset ;
69
710#[ test]
@@ -22,3 +25,39 @@ fn entry_point_offset_into_json_str() {
2225 let offset = EntryPointOffset ( 123 ) ;
2326 assert_eq ! ( json!( offset) , json!( format!( "{:#x}" , offset. 0 ) ) ) ;
2427}
28+
29+ #[ test]
30+ fn thin_state_diff_len ( ) {
31+ let state_diff = ThinStateDiff {
32+ deployed_contracts : indexmap ! {
33+ 0u64 . into( ) => ClassHash ( 4u64 . into( ) ) ,
34+ } ,
35+ storage_diffs : indexmap ! {
36+ 0u64 . into( ) => indexmap! {
37+ 0u64 . into( ) => 0u64 . into( ) ,
38+ 1u64 . into( ) => 1u64 . into( ) ,
39+ } ,
40+ 1u64 . into( ) => indexmap! {
41+ 0u64 . into( ) => 0u64 . into( ) ,
42+ } ,
43+ } ,
44+ declared_classes : indexmap ! {
45+ ClassHash ( 4u64 . into( ) ) => CompiledClassHash ( 9u64 . into( ) ) ,
46+ ClassHash ( 5u64 . into( ) ) => CompiledClassHash ( 10u64 . into( ) ) ,
47+ } ,
48+ deprecated_declared_classes : vec ! [
49+ ClassHash ( 6u64 . into( ) ) ,
50+ ClassHash ( 7u64 . into( ) ) ,
51+ ClassHash ( 8u64 . into( ) ) ,
52+ ] ,
53+ nonces : indexmap ! {
54+ 0u64 . into( ) => Nonce ( 1u64 . into( ) ) ,
55+ 1u64 . into( ) => Nonce ( 1u64 . into( ) ) ,
56+ } ,
57+ replaced_classes : indexmap ! {
58+ 2u64 . into( ) => ClassHash ( 4u64 . into( ) ) ,
59+ 3u64 . into( ) => ClassHash ( 5u64 . into( ) ) ,
60+ } ,
61+ } ;
62+ assert_eq ! ( state_diff. len( ) , 13 ) ;
63+ }
0 commit comments