Add a unit test

This commit is contained in:
James Agnew 2020-01-29 09:35:22 -05:00
parent 00fdc978cc
commit a6f3ee8319
2 changed files with 43 additions and 17 deletions

View File

@ -20,27 +20,40 @@ public class StressTestParserTest extends BaseTest {
FhirContext ctx = FhirContext.forR4(); FhirContext ctx = FhirContext.forR4();
String input = loadResource("/org/hl7/fhir/r4/model/valueset/valuesets.xml"); String input = loadResource("/org/hl7/fhir/r4/model/valueset/valuesets.xml");
String json = ctx.newJsonParser().encodeResourceToString(ctx.newXmlParser().parseResource(input)); Bundle parsed = ctx.newXmlParser().parseResource(Bundle.class, input);
String json = ctx.newJsonParser().encodeResourceToString(parsed);
StopWatch sw = null; StopWatch sw = null;
int loops = 100; int loops = 200;
// for (int i = 0; i < loops; i++) {
// ctx.newXmlParser().parseResource(input);
// if (i < 50) {
// ourLog.info("Parsed XML {} times", i);
// continue;
// } else if (i == 50) {
// sw = new StopWatch();
// continue;
// }
// ourLog.info("Parsed XML {} times - {}ms/pass", i, sw.getMillisPerOperation(i - 50));
// }
// for (int i = 0; i < loops; i++) {
// Bundle parsed = (Bundle) ctx.newJsonParser().parseResource(json);
// if (i < 50) {
// ourLog.info("Parsed JSON with {} entries {} times", parsed.getEntry().size(), i);
// continue;
// } else if (i == 50) {
// sw = new StopWatch();
// continue;
// }
// ourLog.info("Parsed JSON {} times - {}ms/pass", i, sw.getMillisPerOperation(i - 50));
// }
for (int i = 0; i < loops; i++) { for (int i = 0; i < loops; i++) {
ctx.newXmlParser().parseResource(input); ctx.newJsonParser().encodeResourceToString(parsed);
if (i < 50) { if (i < 50) {
ourLog.info("Parsed XML {} times", i); ourLog.info("Serialized JSON with {} entries {} times", parsed.getEntry().size(), i);
continue;
} else if (i == 50) {
sw = new StopWatch();
continue;
}
ourLog.info("Parsed XML {} times - {}ms/pass", i, sw.getMillisPerOperation(i - 50));
}
for (int i = 0; i < loops; i++) {
Bundle parsed = (Bundle) ctx.newJsonParser().parseResource(json);
if (i < 50) {
ourLog.info("Parsed JSON with {} entries {} times", parsed.getEntry().size(), i);
continue; continue;
} else if (i == 50) { } else if (i == 50) {
sw = new StopWatch(); sw = new StopWatch();
@ -49,6 +62,6 @@ public class StressTestParserTest extends BaseTest {
ourLog.info("Parsed JSON {} times - {}ms/pass", i, sw.getMillisPerOperation(i - 50)); ourLog.info("Parsed JSON {} times - {}ms/pass", i, sw.getMillisPerOperation(i - 50));
} }
} }
} }

View File

@ -79,6 +79,19 @@ public class JsonParserR4Test extends BaseTest {
assertThat(output, containsString("\"Questionnaire/123/_history/456\"")); assertThat(output, containsString("\"Questionnaire/123/_history/456\""));
} }
@Test
public void testPrettyPrint() {
ourCtx.getParserOptions().setDontStripVersionsFromReferencesAtPaths("QuestionnaireResponse.questionnaire");
QuestionnaireResponse qr = new QuestionnaireResponse();
qr.getQuestionnaireElement().setValueAsString("Questionnaire/123/_history/456");
String output = ourCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(qr);
ourLog.info(output);
assertThat(output, containsString("\n \"resourceType\""));
}
/** /**
* See #814 * See #814
*/ */