@@ -76,12 +76,28 @@ fn is_false() {
7676}
7777
7878#[ test]
79- fn is_nul ( ) {
79+ fn is_null ( ) {
8080 let null = JsonValue :: Null ;
8181
8282 assert ! ( null. is_null( ) ) ;
8383}
8484
85+ #[ test]
86+ fn is_empty ( ) {
87+ assert ! ( Null . is_empty( ) ) ;
88+ assert ! ( json:: from( 0 ) . is_empty( ) ) ;
89+ assert ! ( json:: from( "" ) . is_empty( ) ) ;
90+ assert ! ( json:: from( false ) . is_empty( ) ) ;
91+ assert ! ( array![ ] . is_empty( ) ) ;
92+ assert ! ( object!{ } . is_empty( ) ) ;
93+
94+ assert ! ( !json:: from( 1 ) . is_empty( ) ) ;
95+ assert ! ( !json:: from( "foo" ) . is_empty( ) ) ;
96+ assert ! ( !json:: from( true ) . is_empty( ) ) ;
97+ assert ! ( !array![ 0 ] . is_empty( ) ) ;
98+ assert ! ( !object!{ "foo" => false } . is_empty( ) ) ;
99+ }
100+
85101#[ test]
86102fn stringify_null ( ) {
87103 assert_eq ! ( stringify( Null ) , "null" ) ;
@@ -238,34 +254,6 @@ fn stringify_pretty_object() {
238254 \" Brutus\" ,\n \" mother\" : \" Helga\" \n }\n }") ;
239255}
240256
241- #[ test]
242- fn object_dump_minified ( ) {
243- let object = object ! {
244- "name" => "Maciej" ,
245- "age" => 30
246- } ;
247-
248- assert_eq ! ( object. dump( ) , "{\" age\" :30,\" name\" :\" Maciej\" }" ) ;
249- }
250-
251- #[ test]
252- fn object_dump_pretty ( ) {
253- let object = object ! {
254- "name" => "Urlich" ,
255- "age" => 50 ,
256- "parents" => object!{
257- "mother" => "Helga" ,
258- "father" => "Brutus"
259- } ,
260- "cars" => array![ "Golf" , "Mercedes" , "Porsche" ]
261- } ;
262-
263- assert_eq ! ( object. pretty( 2 ) ,
264- "{\n \" age\" : 50,\n \" cars\" : [\n \" Golf\" ,\n \" Mercedes\" ,\n \
265- \" Porsche\" \n ],\n \" name\" : \" Urlich\" ,\n \" parents\" : {\n \" father\" : \
266- \" Brutus\" ,\n \" mother\" : \" Helga\" \n }\n }") ;
267- }
268-
269257#[ test]
270258fn parse_true ( ) {
271259 assert_eq ! ( parse( "true" ) . unwrap( ) , true ) ;
@@ -473,16 +461,6 @@ fn parse_error() {
473461 assert ! ( parse( "10 20" ) . is_err( ) ) ;
474462}
475463
476- #[ test]
477- fn object_len ( ) {
478- let data = object ! {
479- "a" => true ,
480- "b" => false
481- } ;
482-
483- assert_eq ! ( data. len( ) , 2 ) ;
484- }
485-
486464#[ test]
487465fn array_len ( ) {
488466 let data = array ! [ 0 , 1 , 2 , 3 ] ;
@@ -505,14 +483,72 @@ fn array_contains() {
505483}
506484
507485#[ test]
508- fn null_len ( ) {
509- let data = json :: Null ;
486+ fn array_push ( ) {
487+ let mut data = array ! [ 1 , 2 ] ;
510488
511- assert_eq ! ( data. len( ) , 0 ) ;
489+ data. push ( 3 ) . unwrap ( ) ;
490+
491+ assert_eq ! ( data, array![ 1 , 2 , 3 ] ) ;
492+ }
493+
494+ #[ test]
495+ fn array_pop ( ) {
496+ let mut data = array ! [ 1 , 2 , 3 ] ;
497+
498+ assert_eq ! ( data. pop( ) , 3 ) ;
499+ assert_eq ! ( data, array![ 1 , 2 ] ) ;
512500}
513501
514502#[ test]
515- fn iter_entries ( ) {
503+ fn array_members ( ) {
504+ let data = array ! [ 1 , "foo" ] ;
505+
506+ for member in data. members ( ) {
507+ assert ! ( !member. is_null( ) ) ;
508+ }
509+
510+ let mut members = data. members ( ) ;
511+
512+ assert_eq ! ( members. next( ) . unwrap( ) , 1 ) ;
513+ assert_eq ! ( members. next( ) . unwrap( ) , "foo" ) ;
514+ assert ! ( members. next( ) . is_none( ) ) ;
515+ }
516+
517+ #[ test]
518+ fn array_members_mut ( ) {
519+ let mut data = array ! [ Null , Null ] ;
520+
521+ for member in data. members_mut ( ) {
522+ assert ! ( member. is_null( ) ) ;
523+ * member = 100 . into ( ) ;
524+ }
525+
526+ assert_eq ! ( data, array![ 100 , 100 ] ) ;
527+ }
528+
529+ #[ test]
530+ fn object_len ( ) {
531+ let data = object ! {
532+ "a" => true ,
533+ "b" => false
534+ } ;
535+
536+ assert_eq ! ( data. len( ) , 2 ) ;
537+ }
538+
539+ #[ test]
540+ fn object_remove ( ) {
541+ let mut data = object ! {
542+ "foo" => "bar" ,
543+ "answer" => 42
544+ } ;
545+
546+ assert_eq ! ( data. remove( "foo" ) , "bar" ) ;
547+ assert_eq ! ( data, object!{ "answer" => 42 } ) ;
548+ }
549+
550+ #[ test]
551+ fn object_entries ( ) {
516552 let data = object ! {
517553 "a" => 1 ,
518554 "b" => "foo"
@@ -536,7 +572,7 @@ fn iter_entries() {
536572}
537573
538574#[ test]
539- fn iter_entries_mut ( ) {
575+ fn object_entries_mut ( ) {
540576 let mut data = object ! {
541577 "a" => Null ,
542578 "b" => Null
@@ -554,30 +590,38 @@ fn iter_entries_mut() {
554590}
555591
556592#[ test]
557- fn iter_members ( ) {
558- let data = array ! [ 1 , "foo" ] ;
593+ fn object_dump_minified ( ) {
594+ let object = object ! {
595+ "name" => "Maciej" ,
596+ "age" => 30
597+ } ;
559598
560- for member in data. members ( ) {
561- assert ! ( !member. is_null( ) ) ;
562- }
599+ assert_eq ! ( object. dump( ) , "{\" age\" :30,\" name\" :\" Maciej\" }" ) ;
600+ }
563601
564- let mut members = data. members ( ) ;
602+ #[ test]
603+ fn object_dump_pretty ( ) {
604+ let object = object ! {
605+ "name" => "Urlich" ,
606+ "age" => 50 ,
607+ "parents" => object!{
608+ "mother" => "Helga" ,
609+ "father" => "Brutus"
610+ } ,
611+ "cars" => array![ "Golf" , "Mercedes" , "Porsche" ]
612+ } ;
565613
566- assert_eq ! ( members. next( ) . unwrap( ) , 1 ) ;
567- assert_eq ! ( members. next( ) . unwrap( ) , "foo" ) ;
568- assert ! ( members. next( ) . is_none( ) ) ;
614+ assert_eq ! ( object. pretty( 2 ) ,
615+ "{\n \" age\" : 50,\n \" cars\" : [\n \" Golf\" ,\n \" Mercedes\" ,\n \
616+ \" Porsche\" \n ],\n \" name\" : \" Urlich\" ,\n \" parents\" : {\n \" father\" : \
617+ \" Brutus\" ,\n \" mother\" : \" Helga\" \n }\n }") ;
569618}
570619
571620#[ test]
572- fn iter_members_mut ( ) {
573- let mut data = array ! [ Null , Null ] ;
574-
575- for member in data. members_mut ( ) {
576- assert ! ( member. is_null( ) ) ;
577- * member = 100 . into ( ) ;
578- }
621+ fn null_len ( ) {
622+ let data = json:: Null ;
579623
580- assert_eq ! ( data, array! [ 100 , 100 ] ) ;
624+ assert_eq ! ( data. len ( ) , 0 ) ;
581625}
582626
583627#[ test]
0 commit comments