@@ -124,17 +124,29 @@ async fn test_memory_storage_filter_headers() {
124124async fn test_memory_storage_filters ( ) {
125125 let mut storage = MemoryStorageManager :: new ( ) . await . expect ( "Failed to create memory storage" ) ;
126126
127- // Store some test filters
128- let filter_data = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
129- storage. store_filter ( 100 , & filter_data) . await . expect ( "Failed to store filter" ) ;
130-
131- // Retrieve filter
132- let retrieved_filter = storage. load_filter ( 100 ) . await . unwrap ( ) ;
133- assert ! ( retrieved_filter. is_some( ) ) ;
134- assert_eq ! ( retrieved_filter. unwrap( ) , filter_data) ;
135-
136- // Test non-existent filter
137- assert ! ( storage. load_filter( 999 ) . await . unwrap( ) . is_none( ) ) ;
127+ // Store some test filters at consecutive heights
128+ let filter_data_0 = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
129+ let filter_data_1 = vec ! [ 6 , 7 , 8 , 9 , 10 ] ;
130+ let filter_data_2 = vec ! [ 11 , 12 , 13 , 14 , 15 ] ;
131+ storage. store_filter ( 100 , & filter_data_0) . await . expect ( "Failed to store filter" ) ;
132+ storage. store_filter ( 101 , & filter_data_1) . await . expect ( "Failed to store filter" ) ;
133+ storage. store_filter ( 102 , & filter_data_2) . await . expect ( "Failed to store filter" ) ;
134+
135+ // Retrieve single filter via range
136+ let retrieved_filters = storage. load_filters ( 100 ..101 ) . await . unwrap ( ) ;
137+ assert_eq ! ( retrieved_filters. len( ) , 1 ) ;
138+ assert_eq ! ( retrieved_filters[ 0 ] , filter_data_0) ;
139+
140+ // Retrieve multiple filters
141+ let retrieved_filters = storage. load_filters ( 100 ..103 ) . await . unwrap ( ) ;
142+ assert_eq ! ( retrieved_filters. len( ) , 3 ) ;
143+ assert_eq ! ( retrieved_filters[ 0 ] , filter_data_0) ;
144+ assert_eq ! ( retrieved_filters[ 1 ] , filter_data_1) ;
145+ assert_eq ! ( retrieved_filters[ 2 ] , filter_data_2) ;
146+
147+ // Test non-existent range returns empty vector
148+ let empty_filters = storage. load_filters ( 999 ..1000 ) . await . unwrap ( ) ;
149+ assert ! ( empty_filters. is_empty( ) ) ;
138150}
139151
140152#[ tokio:: test]
@@ -200,7 +212,7 @@ async fn test_memory_storage_clear() {
200212 // Verify data exists
201213 assert_eq ! ( storage. get_tip_height( ) . await . unwrap( ) , Some ( 4 ) ) ;
202214 assert_eq ! ( storage. get_filter_tip_height( ) . await . unwrap( ) , Some ( 2 ) ) ;
203- assert ! ( storage. load_filter ( 1 ) . await . unwrap( ) . is_some ( ) ) ;
215+ assert ! ( ! storage. load_filters ( 1 .. 2 ) . await . unwrap( ) . is_empty ( ) ) ;
204216 assert ! ( storage. load_metadata( "test" ) . await . unwrap( ) . is_some( ) ) ;
205217
206218 // Clear storage
@@ -209,7 +221,7 @@ async fn test_memory_storage_clear() {
209221 // Verify everything is cleared
210222 assert_eq ! ( storage. get_tip_height( ) . await . unwrap( ) , None ) ;
211223 assert_eq ! ( storage. get_filter_tip_height( ) . await . unwrap( ) , None ) ;
212- assert ! ( storage. load_filter ( 1 ) . await . unwrap( ) . is_none ( ) ) ;
224+ assert ! ( storage. load_filters ( 1 .. 2 ) . await . unwrap( ) . is_empty ( ) ) ;
213225 assert ! ( storage. load_metadata( "test" ) . await . unwrap( ) . is_none( ) ) ;
214226 assert ! ( storage. load_headers( 0 ..5 ) . await . unwrap( ) . is_empty( ) ) ;
215227}
0 commit comments