MCPcopy Create free account
hub / github.com/amazon-ion/ion-java / test

Method test

src/test/java/com/amazon/ion/RoundTripTest.java:205–264  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

203
204
205 @Test
206 public void test()
207 throws Exception
208 {
209 IonDatagram values = loader().load(myTestFile);
210
211 // Turn the DOM back into text...
212 String text1 = renderSystemView(values);
213 byte[] binary1 = encode(values);
214 checkBinaryHeader(binary1);
215
216 // Reload the first-trip text
217 IonLoader loader = system().newLoader();
218 IonDatagram dgFromText;
219 try
220 {
221 dgFromText = loader.load(text1);
222 }
223 catch (Exception e)
224 {
225 String message =
226 "Error parsing file " + myTestFile.getName() +
227 " reprinted as:\n" + text1;
228 throw new IonException(message, e);
229 }
230
231 String text2FromText = renderUserView(dgFromText);
232 byte[] binary2FromText = encode(dgFromText);
233 checkBinaryHeader(binary2FromText);
234
235
236 // Reload the first-trip binary
237
238 IonReader reader = getStreamingMode().newIonReader(system().getCatalog(), binary1);
239 IonDatagram dgFromBinary = loader.load(reader);
240 reader.close();
241
242 String text2FromBinary = renderUserView(dgFromBinary);
243 byte[] binary2FromBinary = encode(dgFromBinary);
244 checkBinaryHeader(binary2FromBinary);
245
246 // check strict data equivalence
247 reader = getStreamingMode().newIonReader(system().getCatalog(), binary2FromBinary);
248 IonDatagram dgbinary2FromBinary = loader.load(reader);
249 reader.close();
250 assertIonEquals(dgFromBinary, dgbinary2FromBinary);
251
252 if (!compareRenderedTextImages(text2FromText, text2FromBinary))
253 {
254 fail("different printing from text vs from binary\n" +
255 "text2FromText: " + text2FromText + "\n" +
256 "text2FromBinary: " + text2FromBinary);
257 }
258
259 // check strict data equivalence
260 reader = getStreamingMode().newIonReader(system().getCatalog(), binary2FromText);
261 IonDatagram dgBinary2FromText = loader.load(reader);
262 reader.close();

Callers

nothing calls this directly

Calls 15

loadMethod · 0.95
renderSystemViewMethod · 0.95
encodeMethod · 0.95
renderUserViewMethod · 0.95
closeMethod · 0.95
loaderMethod · 0.80
checkBinaryHeaderMethod · 0.80
newIonReaderMethod · 0.80
getStreamingModeMethod · 0.80
assertIonEqualsMethod · 0.80
failMethod · 0.80

Tested by

no test coverage detected