@@ -18,8 +18,8 @@ use std::collections::HashMap;
1818use crate :: common;
1919use env_logger;
2020
21- use aerospike:: operations:: cdt_context:: ctx_map_key;
22- use aerospike:: operations:: maps;
21+ use aerospike:: operations:: cdt_context:: { ctx_map_key, ctx_map_key_create } ;
22+ use aerospike:: operations:: { maps, MapOrder } ;
2323use aerospike:: {
2424 as_bin, as_key, as_list, as_map, as_val, Bins , MapPolicy , MapReturnType , ReadPolicy ,
2525 WritePolicy ,
@@ -300,4 +300,24 @@ fn map_operations() {
300300 let op = maps:: get_by_key ( bin_name, & xkey, MapReturnType :: Value ) . set_context ( ctx) ;
301301 let rec = client. operate ( & wpolicy, & key, & [ op] ) . unwrap ( ) ;
302302 assert_eq ! ( * rec. bins. get( bin_name) . unwrap( ) , as_val!( 8 ) ) ;
303+
304+ let mkey = as_val ! ( "ctxtest2" ) ;
305+ let ctx = & vec ! [ ctx_map_key_create( mkey. clone( ) , MapOrder :: KeyOrdered ) ] ;
306+ let xkey = as_val ! ( "y" ) ;
307+ let xval = as_val ! ( 8 ) ;
308+ let op = [ maps:: put ( & mpolicy, bin_name, & xkey, & xval) . set_context ( ctx) ] ;
309+ client. operate ( & wpolicy, & key, & op) . unwrap ( ) ;
310+ let op = [ maps:: get_by_key ( bin_name, & xkey, MapReturnType :: Value ) . set_context ( ctx) ] ;
311+ let rec = client. operate ( & wpolicy, & key, & op) . unwrap ( ) ;
312+ assert_eq ! ( * rec. bins. get( bin_name) . unwrap( ) , as_val!( 8 ) ) ;
313+
314+ let mkey2 = as_val ! ( "ctxtest3" ) ;
315+ let ctx = & vec ! [ ctx_map_key( mkey) , ctx_map_key_create( mkey2, MapOrder :: Unordered ) ] ;
316+ let xkey = as_val ! ( "c" ) ;
317+ let xval = as_val ! ( 9 ) ;
318+ let op = [ maps:: put ( & mpolicy, bin_name, & xkey, & xval) . set_context ( ctx) ] ;
319+ client. operate ( & wpolicy, & key, & op) . unwrap ( ) ;
320+ let op = [ maps:: get_by_key ( bin_name, & xkey, MapReturnType :: Value ) . set_context ( ctx) ] ;
321+ let rec = client. operate ( & wpolicy, & key, & op) . unwrap ( ) ;
322+ assert_eq ! ( * rec. bins. get( bin_name) . unwrap( ) , as_val!( 9 ) ) ;
303323}
0 commit comments