@@ -10,12 +10,12 @@ public void OneField()
1010 var json = "{ \" test\" : 1 }" ;
1111 var paths = FlattenJson ( json ) ;
1212
13- paths . Should ( ) . NotBeEmpty ( ) ;
14- paths . Should ( ) . HaveCount ( 1 ) ;
13+ var expected = new [ ]
14+ {
15+ new JsonPath ( "test" , 1 , JsonType . Number )
16+ } ;
1517
16- paths [ 0 ] . Path . Should ( ) . Be ( "test" ) ;
17- paths [ 0 ] . Value . Should ( ) . Be ( 1 ) ;
18- paths [ 0 ] . Type . Should ( ) . Be ( JsonType . Number ) ;
18+ paths . Should ( ) . BeEquivalentTo ( expected ) ;
1919 }
2020
2121 [ Test ]
@@ -24,22 +24,50 @@ public void MultipleFields()
2424 var json = "{ \" test1\" : 1, \" test2\" : \" value\" , \" test3\" : true }" ;
2525 var paths = FlattenJson ( json ) ;
2626
27- paths . Should ( ) . NotBeEmpty ( ) ;
28- paths . Should ( ) . HaveCount ( 3 ) ;
27+ var expected = new [ ]
28+ {
29+ new JsonPath ( "test1" , 1 , JsonType . Number ) ,
30+ new JsonPath ( "test2" , "value" , JsonType . String ) ,
31+ new JsonPath ( "test3" , true , JsonType . Boolean )
32+ } ;
2933
30- paths [ 0 ] . Path . Should ( ) . Be ( "test1" ) ;
31- paths [ 0 ] . Value . Should ( ) . Be ( 1 ) ;
32- paths [ 0 ] . Type . Should ( ) . Be ( JsonType . Number ) ;
34+ paths . Should ( ) . BeEquivalentTo ( expected ) ;
35+ }
36+
37+ [ Test ]
38+ public void SimpleArray ( )
39+ {
40+ var json = "{ \" items\" : [1, 2, 3] }" ;
41+ var paths = FlattenJson ( json ) ;
3342
34- paths [ 1 ] . Path . Should ( ) . Be ( "test2" ) ;
35- paths [ 1 ] . Value . Should ( ) . Be ( "value" ) ;
36- paths [ 1 ] . Type . Should ( ) . Be ( JsonType . String ) ;
43+ var expected = new [ ]
44+ {
45+ new JsonPath ( "items[0]" , 1 , JsonType . Number ) ,
46+ new JsonPath ( "items[1]" , 2 , JsonType . Number ) ,
47+ new JsonPath ( "items[2]" , 3 , JsonType . Number ) ,
48+ new JsonPath ( "items.Length" , 3 , JsonType . Number )
49+ } ;
3750
38- paths [ 2 ] . Path . Should ( ) . Be ( "test3" ) ;
39- paths [ 2 ] . Value . Should ( ) . Be ( true ) ;
40- paths [ 2 ] . Type . Should ( ) . Be ( JsonType . Boolean ) ;
51+ paths . Should ( ) . BeEquivalentTo ( expected ) ;
4152 }
4253
54+ [ Test ]
55+ public void ArrayWithObject ( )
56+ {
57+ var json = "{ \" items\" : [ { \" nested\" : 1 }, { \" nested\" : \" 2\" }, { \" nested\" : false } ] }" ;
58+ var paths = FlattenJson ( json ) ;
59+
60+ var expected = new [ ]
61+ {
62+ new JsonPath ( "items[0].nested" , 1 , JsonType . Number ) ,
63+ new JsonPath ( "items[1].nested" , "2" , JsonType . String ) ,
64+ new JsonPath ( "items[2].nested" , false , JsonType . Boolean ) ,
65+ new JsonPath ( "items.Length" , 3 , JsonType . Number )
66+ } ;
67+
68+ paths . Should ( ) . BeEquivalentTo ( expected ) ;
69+ }
70+
4371 private List < JsonPath > FlattenJson ( string json )
4472 {
4573 // TODO: call flattening function
0 commit comments