@@ -166,4 +166,78 @@ public void testNestedExpansions() throws IOException {
166
166
{"first.dot":{"second.dot":"value","third":"value"},"nodots":"value"}\
167
167
""" );
168
168
}
169
+
170
+ public void test () throws IOException {
171
+ String jsonInput = """
172
+ {"first.dot":{"second.dot":"value",
173
+ "value":null}}\
174
+ """ ;
175
+ XContentParser dotExpandedParser = DotExpandingXContentParser .expandDots (createParser (JsonXContent .jsonXContent , jsonInput ));
176
+
177
+ dotExpandedParser .nextToken ();
178
+ XContentParser .Token token ;
179
+ while ((token = dotExpandedParser .nextToken ()) != null ) {
180
+ System .out .println (token + " - " + dotExpandedParser .currentName ());
181
+ }
182
+ }
183
+
184
+ public void testGetTokenLocation () throws IOException {
185
+ String jsonInput = """
186
+ {"first.dot":{"second.dot":"value",
187
+ "value":null}}\
188
+ """ ;
189
+ XContentParser expectedParser = createParser (JsonXContent .jsonXContent , jsonInput );
190
+ XContentParser dotExpandedParser = DotExpandingXContentParser .expandDots (createParser (JsonXContent .jsonXContent , jsonInput ));
191
+
192
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
193
+ assertEquals (XContentParser .Token .START_OBJECT , dotExpandedParser .nextToken ());
194
+ assertEquals (XContentParser .Token .START_OBJECT , expectedParser .nextToken ());
195
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
196
+ assertEquals (XContentParser .Token .FIELD_NAME , expectedParser .nextToken ());
197
+ assertEquals (XContentParser .Token .FIELD_NAME , dotExpandedParser .nextToken ());
198
+ assertEquals ("first" , dotExpandedParser .currentName ());
199
+ assertEquals ("first.dot" , expectedParser .currentName ());
200
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
201
+ assertEquals (XContentParser .Token .START_OBJECT , dotExpandedParser .nextToken ());
202
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
203
+ assertEquals (XContentParser .Token .FIELD_NAME , dotExpandedParser .nextToken ());
204
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
205
+ assertEquals ("dot" , dotExpandedParser .currentName ());
206
+ assertEquals (XContentParser .Token .START_OBJECT , expectedParser .nextToken ());
207
+ assertEquals (XContentParser .Token .START_OBJECT , dotExpandedParser .nextToken ());
208
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
209
+ assertEquals (XContentParser .Token .FIELD_NAME , expectedParser .nextToken ());
210
+ assertEquals (XContentParser .Token .FIELD_NAME , dotExpandedParser .nextToken ());
211
+ assertEquals ("second" , dotExpandedParser .currentName ());
212
+ assertEquals ("second.dot" , expectedParser .currentName ());
213
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
214
+ assertEquals (XContentParser .Token .START_OBJECT , dotExpandedParser .nextToken ());
215
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
216
+ assertEquals (XContentParser .Token .FIELD_NAME , dotExpandedParser .nextToken ());
217
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
218
+ assertEquals ("dot" , dotExpandedParser .currentName ());
219
+ assertEquals (XContentParser .Token .VALUE_STRING , expectedParser .nextToken ());
220
+ assertEquals (XContentParser .Token .VALUE_STRING , dotExpandedParser .nextToken ());
221
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
222
+ assertEquals (XContentParser .Token .END_OBJECT , dotExpandedParser .nextToken ());
223
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
224
+ assertEquals (XContentParser .Token .FIELD_NAME , expectedParser .nextToken ());
225
+ assertEquals (XContentParser .Token .FIELD_NAME , dotExpandedParser .nextToken ());
226
+ assertEquals ("value" , dotExpandedParser .currentName ());
227
+ assertEquals ("value" , expectedParser .currentName ());
228
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
229
+ assertEquals (XContentParser .Token .VALUE_NULL , expectedParser .nextToken ());
230
+ assertEquals (XContentParser .Token .VALUE_NULL , dotExpandedParser .nextToken ());
231
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
232
+ assertEquals (XContentParser .Token .END_OBJECT , dotExpandedParser .nextToken ());
233
+ assertEquals (XContentParser .Token .END_OBJECT , expectedParser .nextToken ());
234
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
235
+ assertEquals (XContentParser .Token .END_OBJECT , dotExpandedParser .nextToken ());
236
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
237
+ assertEquals (XContentParser .Token .END_OBJECT , dotExpandedParser .nextToken ());
238
+ assertEquals (XContentParser .Token .END_OBJECT , expectedParser .nextToken ());
239
+ assertEquals (expectedParser .getTokenLocation (), dotExpandedParser .getTokenLocation ());
240
+ assertNull (dotExpandedParser .nextToken ());
241
+ assertNull (expectedParser .nextToken ());
242
+ }
169
243
}
0 commit comments