1
- use super :: super :: sorted_json :: * ;
1
+ use super :: super :: ordered_json :: * ;
2
2
3
- fn check ( json : SortedJson , serialized : & str ) {
3
+ fn check ( json : OrderedJson , serialized : & str ) {
4
4
assert_eq ! ( json. to_string( ) , serialized) ;
5
5
assert_eq ! ( serde_json:: to_string( & json) . unwrap( ) , serialized) ;
6
6
7
7
let json = json. to_string ( ) ;
8
- let json: SortedJson = serde_json:: from_str ( & json) . unwrap ( ) ;
8
+ let json: OrderedJson = serde_json:: from_str ( & json) . unwrap ( ) ;
9
9
10
10
assert_eq ! ( json. to_string( ) , serialized) ;
11
11
assert_eq ! ( serde_json:: to_string( & json) . unwrap( ) , serialized) ;
12
12
13
13
let json = serde_json:: to_string ( & json) . unwrap ( ) ;
14
- let json: SortedJson = serde_json:: from_str ( & json) . unwrap ( ) ;
14
+ let json: OrderedJson = serde_json:: from_str ( & json) . unwrap ( ) ;
15
15
16
16
assert_eq ! ( json. to_string( ) , serialized) ;
17
17
assert_eq ! ( serde_json:: to_string( & json) . unwrap( ) , serialized) ;
18
18
}
19
19
20
- // Test this basic are needed because we are testing that our Display impl + serialize impl don't
21
- // nest everything in extra level of string. We also are testing round trip.
20
+ // Make sure there is no extra level of string, plus number of escapes.
22
21
#[ test]
23
22
fn escape_json_number ( ) {
24
- let json = SortedJson :: serialize ( 3 ) ;
23
+ let json = OrderedJson :: serialize ( 3 ) . unwrap ( ) ;
25
24
let json = EscapedJson :: from ( json) ;
26
25
assert_eq ! ( format!( "{json}" ) , "3" ) ;
27
26
}
28
27
29
28
#[ test]
30
29
fn escape_json_single_quote ( ) {
31
- let json = SortedJson :: serialize ( "he's" ) ;
30
+ let json = OrderedJson :: serialize ( "he's" ) . unwrap ( ) ;
32
31
let json = EscapedJson :: from ( json) ;
33
32
assert_eq ! ( format!( "{json}" ) , r#""he\'s""# ) ;
34
33
}
35
34
36
35
#[ test]
37
36
fn escape_json_array ( ) {
38
- let json = SortedJson :: serialize ( [ 1 , 2 , 3 ] ) ;
37
+ let json = OrderedJson :: serialize ( [ 1 , 2 , 3 ] ) . unwrap ( ) ;
39
38
let json = EscapedJson :: from ( json) ;
40
39
assert_eq ! ( format!( "{json}" ) , r#"[1,2,3]"# ) ;
41
40
}
42
41
43
42
#[ test]
44
43
fn escape_json_string ( ) {
45
- let json = SortedJson :: serialize ( r#"he"llo"# ) ;
44
+ let json = OrderedJson :: serialize ( r#"he"llo"# ) . unwrap ( ) ;
46
45
let json = EscapedJson :: from ( json) ;
47
46
assert_eq ! ( format!( "{json}" ) , r#""he\\\"llo""# ) ;
48
47
}
49
48
50
49
#[ test]
51
50
fn escape_json_string_escaped ( ) {
52
- let json = SortedJson :: serialize ( r#"he\"llo"# ) ;
51
+ let json = OrderedJson :: serialize ( r#"he\"llo"# ) . unwrap ( ) ;
53
52
let json = EscapedJson :: from ( json) ;
54
53
assert_eq ! ( format!( "{json}" ) , r#""he\\\\\\\"llo""# ) ;
55
54
}
56
55
57
56
#[ test]
58
57
fn escape_json_string_escaped_escaped ( ) {
59
- let json = SortedJson :: serialize ( r#"he\\"llo"# ) ;
58
+ let json = OrderedJson :: serialize ( r#"he\\"llo"# ) . unwrap ( ) ;
60
59
let json = EscapedJson :: from ( json) ;
61
60
assert_eq ! ( format!( "{json}" ) , r#""he\\\\\\\\\\\"llo""# ) ;
62
61
}
63
62
63
+ // Testing round trip + making sure there is no extra level of string
64
64
#[ test]
65
65
fn number ( ) {
66
- let json = SortedJson :: serialize ( 3 ) ;
66
+ let json = OrderedJson :: serialize ( 3 ) . unwrap ( ) ;
67
67
let serialized = "3" ;
68
68
check ( json, serialized) ;
69
69
}
70
70
71
71
#[ test]
72
72
fn boolean ( ) {
73
- let json = SortedJson :: serialize ( true ) ;
73
+ let json = OrderedJson :: serialize ( true ) . unwrap ( ) ;
74
74
let serialized = "true" ;
75
75
check ( json, serialized) ;
76
76
}
77
77
78
78
#[ test]
79
79
fn string ( ) {
80
- let json = SortedJson :: serialize ( "he\" llo" ) ;
80
+ let json = OrderedJson :: serialize ( "he\" llo" ) . unwrap ( ) ;
81
81
let serialized = r#""he\"llo""# ;
82
82
check ( json, serialized) ;
83
83
}
84
84
85
85
#[ test]
86
86
fn serialize_array ( ) {
87
- let json = SortedJson :: serialize ( [ 3 , 1 , 2 ] ) ;
87
+ let json = OrderedJson :: serialize ( [ 3 , 1 , 2 ] ) . unwrap ( ) ;
88
88
let serialized = "[3,1,2]" ;
89
89
check ( json, serialized) ;
90
90
}
@@ -93,18 +93,19 @@ fn serialize_array() {
93
93
fn sorted_array ( ) {
94
94
let items = [ "c" , "a" , "b" ] ;
95
95
let serialized = r#"["a","b","c"]"# ;
96
- let items: Vec < SortedJson > = items. into_iter ( ) . map ( SortedJson :: serialize) . collect ( ) ;
97
- let json = SortedJson :: array ( items) ;
96
+ let items: Vec < OrderedJson > =
97
+ items. into_iter ( ) . map ( OrderedJson :: serialize) . collect :: < Result < Vec < _ > , _ > > ( ) . unwrap ( ) ;
98
+ let json = OrderedJson :: array_sorted ( items) ;
98
99
check ( json, serialized) ;
99
100
}
100
101
101
102
#[ test]
102
103
fn nested_array ( ) {
103
- let a = SortedJson :: serialize ( 3 ) ;
104
- let b = SortedJson :: serialize ( 2 ) ;
105
- let c = SortedJson :: serialize ( 1 ) ;
106
- let d = SortedJson :: serialize ( [ 1 , 3 , 2 ] ) ;
107
- let json = SortedJson :: array ( [ a, b, c, d] ) ;
104
+ let a = OrderedJson :: serialize ( 3 ) . unwrap ( ) ;
105
+ let b = OrderedJson :: serialize ( 2 ) . unwrap ( ) ;
106
+ let c = OrderedJson :: serialize ( 1 ) . unwrap ( ) ;
107
+ let d = OrderedJson :: serialize ( [ 1 , 3 , 2 ] ) . unwrap ( ) ;
108
+ let json = OrderedJson :: array_sorted ( [ a, b, c, d] ) ;
108
109
let serialized = r#"[1,2,3,[1,3,2]]"# ;
109
110
check ( json, serialized) ;
110
111
}
@@ -113,7 +114,8 @@ fn nested_array() {
113
114
fn array_unsorted ( ) {
114
115
let items = [ "c" , "a" , "b" ] ;
115
116
let serialized = r#"["c","a","b"]"# ;
116
- let items: Vec < SortedJson > = items. into_iter ( ) . map ( SortedJson :: serialize) . collect ( ) ;
117
- let json = SortedJson :: array_unsorted ( items) ;
117
+ let items: Vec < OrderedJson > =
118
+ items. into_iter ( ) . map ( OrderedJson :: serialize) . collect :: < Result < Vec < _ > , _ > > ( ) . unwrap ( ) ;
119
+ let json = OrderedJson :: array_unsorted ( items) ;
118
120
check ( json, serialized) ;
119
121
}
0 commit comments