32
32
*/
33
33
public final class JsonEncoderTest {
34
34
35
+ private static final String LITERAL1 = "L1" ;
36
+ private static final String LITERAL2 = "L2" ;
37
+ private static final String LITERAL3 = "L3" ;
38
+ private static final String LITERAL4 = "L4" ;
39
+
40
+ private static final String VALUE1 = "V1" ;
41
+ private static final String VALUE2 = "V2" ;
42
+ private static final String VALUE3 = "V3" ;
43
+ private static final String VALUE4 = "V4" ;
44
+
45
+ private static final String ENTITY1 = "En1" ;
46
+ private static final String ENTITY2 = "En2" ;
47
+
48
+ private static final String LIST1 = "Li1[]" ;
49
+ private static final String LIST2 = "Li2[]" ;
50
+ private static final String LIST3 = "Li3[]" ;
51
+
35
52
private JsonEncoder encoder ;
36
53
37
54
@ Mock
@@ -51,29 +68,92 @@ public void cleanup() {
51
68
}
52
69
53
70
@ Test
54
- public void testShouldEncodeLiteralsAndEntities () {
71
+ public void testShouldEncodeLiterals () {
72
+ encoder .startRecord ("" );
73
+ encoder .literal (LITERAL1 , VALUE1 );
74
+ encoder .literal (LITERAL2 , VALUE2 );
75
+ encoder .literal (LITERAL3 , VALUE3 );
76
+ encoder .endRecord ();
77
+
78
+ verify (receiver ).process (fixQuotes ("{'L1':'V1','L2':'V2','L3':'V3'}" ));
79
+ }
80
+
81
+ @ Test
82
+ public void testShouldEncodeEntities () {
55
83
encoder .startRecord ("" );
56
- encoder .literal ("lit1" , "val1" );
57
- encoder .startEntity ("ent1" );
58
- encoder .literal ("lit2" , "val2" );
59
- encoder .literal ("lit3" , "val3" );
84
+ encoder .startEntity (ENTITY1 );
85
+ encoder .literal (LITERAL1 , VALUE1 );
86
+ encoder .literal (LITERAL2 , VALUE2 );
87
+ encoder .endEntity ();
88
+ encoder .startEntity (ENTITY2 );
89
+ encoder .literal (LITERAL1 , VALUE1 );
90
+ encoder .literal (LITERAL2 , VALUE2 );
91
+ encoder .endEntity ();
92
+ encoder .endRecord ();
93
+
94
+ verify (receiver ).process (fixQuotes ("{'En1':{'L1':'V1','L2':'V2'},'En2':{'L1':'V1','L2':'V2'}}" ));
95
+ }
96
+
97
+ @ Test
98
+ public void testShouldEncodeNestedEntities () {
99
+ encoder .startRecord ("" );
100
+ encoder .startEntity (ENTITY1 );
101
+ encoder .startEntity (ENTITY2 );
102
+ encoder .literal (LITERAL1 , VALUE1 );
103
+ encoder .endEntity ();
60
104
encoder .endEntity ();
61
105
encoder .endRecord ();
62
106
63
- verify (receiver ).process (fixQuotes ("{'lit1':'val1','ent1' :{'lit2 ':'val2','lit3':'val3' }}" ));
107
+ verify (receiver ).process (fixQuotes ("{'En1':{'En2' :{'L1 ':'V1'} }}" ));
64
108
}
65
109
66
110
@ Test
67
111
public void testShouldEncodeMarkedEntitiesAsList () {
68
112
encoder .startRecord ("" );
69
- encoder .startEntity ("list[]" );
70
- encoder .literal ("a" , "1" );
71
- encoder .literal ("b" , "2" );
72
- encoder .literal ("c" , "3" );
113
+ encoder .startEntity (LIST1 );
114
+ encoder .literal (LITERAL1 , VALUE1 );
115
+ encoder .literal (LITERAL2 , VALUE2 );
116
+ encoder .literal (LITERAL3 , VALUE3 );
73
117
encoder .endEntity ();
74
118
encoder .endRecord ();
75
119
76
- verify (receiver ).process (fixQuotes ("{'list':['1','2','3']}" ));
120
+ verify (receiver ).process (fixQuotes ("{'Li1':['V1','V2','V3']}" ));
121
+ }
122
+
123
+ @ Test
124
+ public void testShouldEncodeEntitiesInLists () {
125
+ encoder .startRecord ("" );
126
+ encoder .startEntity (LIST1 );
127
+ encoder .startEntity (ENTITY1 );
128
+ encoder .literal (LITERAL1 , VALUE1 );
129
+ encoder .literal (LITERAL2 , VALUE2 );
130
+ encoder .endEntity ();
131
+ encoder .startEntity (ENTITY2 );
132
+ encoder .literal (LITERAL3 , VALUE3 );
133
+ encoder .literal (LITERAL4 , VALUE4 );
134
+ encoder .endEntity ();
135
+ encoder .endEntity ();
136
+ encoder .endRecord ();
137
+
138
+ verify (receiver ).process (fixQuotes ("{'Li1':[{'L1':'V1','L2':'V2'},{'L3':'V3','L4':'V4'}]}" ));
139
+ }
140
+
141
+ @ Test
142
+ public void testShouldEncodeNestedLists () {
143
+ encoder .startRecord ("" );
144
+ encoder .startEntity (LIST1 );
145
+ encoder .startEntity (LIST2 );
146
+ encoder .literal (LITERAL1 , VALUE1 );
147
+ encoder .literal (LITERAL2 , VALUE2 );
148
+ encoder .endEntity ();
149
+ encoder .startEntity (LIST3 );
150
+ encoder .literal (LITERAL3 , VALUE3 );
151
+ encoder .literal (LITERAL4 , VALUE4 );
152
+ encoder .endEntity ();
153
+ encoder .endEntity ();
154
+ encoder .endRecord ();
155
+
156
+ verify (receiver ).process (fixQuotes ("{'Li1':[['V1','V2'],['V3','V4']]}" ));
77
157
}
78
158
79
159
/*
@@ -84,4 +164,5 @@ public void testShouldEncodeMarkedEntitiesAsList() {
84
164
private String fixQuotes (final String str ) {
85
165
return str .replace ('\'' , '"' );
86
166
}
167
+
87
168
}
0 commit comments