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