@@ -301,7 +301,33 @@ fn namespace_syntax_edge_cases() {
301301 let edn_data = edn:: read_string ( r#"#thingy {:f#猫o "bar" :baz/bar "qux" 42 24}"# ) . unwrap ( ) ;
302302 assert_eq ! ( edn_data. get( & Edn :: Key ( "thingy/f#猫o" ) ) , None ) ;
303303 assert_eq ! ( edn_data. get( & Edn :: Key ( "baz/bar" ) ) , None ) ;
304+ }
305+
306+ #[ test]
307+ fn get_contains ( ) {
308+ let edn_data = edn:: read_string ( r#"{:f#猫o "bar" :baz/bar "qux" 42 24}"# ) . unwrap ( ) ;
309+ assert_eq ! ( edn_data. get( & Edn :: Key ( "f#猫o" ) ) , Some ( & Edn :: Str ( "bar" ) ) ) ;
310+ assert_eq ! ( edn_data. contains( & Edn :: Key ( "f#猫o" ) ) , true ) ;
311+ assert_eq ! ( edn_data. get( & Edn :: Key ( "foo" ) ) , None ) ;
312+ assert_eq ! ( edn_data. contains( & Edn :: Key ( "foo" ) ) , false ) ;
313+
314+ let edn_data = edn:: read_string ( r#"#{:f#猫o "bar" :baz/bar "qux" 42 24}"# ) . unwrap ( ) ;
315+ assert_eq ! ( edn_data. contains( & Edn :: Key ( "f#猫o" ) ) , true ) ;
316+ assert_eq ! ( edn_data. contains( & Edn :: Int ( 42 ) ) , true ) ;
317+ assert_eq ! ( edn_data. contains( & Edn :: Key ( "foo" ) ) , false ) ;
304318
305319 let edn_data = edn:: read_string ( r#"[:f#猫o "bar" :baz/bar "qux" 42 24]"# ) . unwrap ( ) ;
306- assert_eq ! ( edn_data. contains( & Edn :: Key ( "baz/bar" ) ) , false ) ;
320+ assert_eq ! ( edn_data. contains( & Edn :: Key ( "f#猫o" ) ) , true ) ;
321+ assert_eq ! ( edn_data. contains( & Edn :: Int ( 42 ) ) , true ) ;
322+ assert_eq ! ( edn_data. contains( & Edn :: Key ( "foo" ) ) , false ) ;
323+
324+ let edn_data = edn:: read_string ( r#"(:f#猫o "bar" :baz/bar "qux" 42 24)"# ) . unwrap ( ) ;
325+ assert_eq ! ( edn_data. contains( & Edn :: Key ( "f#猫o" ) ) , true ) ;
326+ assert_eq ! ( edn_data. contains( & Edn :: Int ( 42 ) ) , true ) ;
327+ assert_eq ! ( edn_data. contains( & Edn :: Key ( "foo" ) ) , false ) ;
328+
329+ let edn_data = edn:: read_string ( r#"42"# ) . unwrap ( ) ;
330+ assert_eq ! ( edn_data. contains( & Edn :: Key ( "f#猫o" ) ) , false ) ;
331+ assert_eq ! ( edn_data. contains( & Edn :: Int ( 42 ) ) , false ) ;
332+ assert_eq ! ( edn_data. contains( & Edn :: Key ( "foo" ) ) , false ) ;
307333}
0 commit comments