Search in sources :

Example 11 with EGraphEngine

use of org.hl7.fhir.utilities.graphql.EGraphEngine in project org.hl7.fhir.core by hapifhir.

the class GraphQLEngineTests method testResource.

private void testResource(Resource resource, String output, String source, String operation) throws IOException, EGraphEngine, EGraphQLException {
    GraphQLEngine gql = new GraphQLEngine(TestingUtilities.context());
    gql.setServices(this);
    if (resource != null) {
        gql.setFocus(resource);
    }
    gql.setGraphQL(Parser.parse(TestingUtilities.loadTestResource("r4b", "graphql", source)));
    gql.getGraphQL().setOperationName(operation);
    gql.getGraphQL().getVariables().add(new Argument("var", new NameValue("true")));
    boolean ok = false;
    String msg = null;
    try {
        gql.execute();
        ok = true;
    } catch (Exception e) {
        if (!output.equals("$error"))
            e.printStackTrace();
        ok = false;
        msg = e.getMessage();
    }
    if (ok) {
        Assertions.assertTrue(!output.equals("$error"), "Expected to fail, but didn't");
        StringBuilder actualStringBuilder = new StringBuilder();
        gql.getOutput().setWriteWrapper(false);
        gql.getOutput().write(actualStringBuilder, 0);
        IOUtils.copy(TestingUtilities.loadTestResourceStream("r4b", "graphql", source), new FileOutputStream(TestingUtilities.tempFile("graphql", source)));
        IOUtils.copy(TestingUtilities.loadTestResourceStream("r4b", "graphql", output), new FileOutputStream(TestingUtilities.tempFile("graphql", output)));
        TextFile.stringToFile(actualStringBuilder.toString(), TestingUtilities.tempFile("graphql", output + ".out"));
        msg = TestingUtilities.checkJsonIsSame(TestingUtilities.tempFile("graphql", output + ".out"), TestingUtilities.tempFile("graphql", output));
        Assertions.assertTrue(Utilities.noString(msg), msg);
    } else
        Assertions.assertTrue(output.equals("$error"), "Error, but proper output was expected (" + msg + ")");
}
Also used : GraphQLEngine(org.hl7.fhir.r4b.utils.GraphQLEngine) FileOutputStream(java.io.FileOutputStream) IOException(java.io.IOException) ParserConfigurationException(javax.xml.parsers.ParserConfigurationException) SAXException(org.xml.sax.SAXException) FHIRException(org.hl7.fhir.exceptions.FHIRException)

Aggregations

ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)4 IOException (java.io.IOException)3 ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)3 FHIRException (org.hl7.fhir.exceptions.FHIRException)3 Package (org.hl7.fhir.utilities.graphql.Package)3 MethodSource (org.junit.jupiter.params.provider.MethodSource)3 SAXException (org.xml.sax.SAXException)3 FileOutputStream (java.io.FileOutputStream)2 EGraphEngine (org.hl7.fhir.utilities.graphql.EGraphEngine)2 EGraphQLException (org.hl7.fhir.utilities.graphql.EGraphQLException)2 GraphQLResponse (org.hl7.fhir.utilities.graphql.GraphQLResponse)2 Operation (org.hl7.fhir.utilities.graphql.Operation)2 FileInputStream (java.io.FileInputStream)1 FileNotFoundException (java.io.FileNotFoundException)1 IBaseResource (org.hl7.fhir.instance.model.api.IBaseResource)1 XmlParser (org.hl7.fhir.r4.formats.XmlParser)1 DomainResource (org.hl7.fhir.r4.model.DomainResource)1 Resource (org.hl7.fhir.r4.model.Resource)1 GraphQLEngine (org.hl7.fhir.r4.utils.GraphQLEngine)1 ExpressionNode (org.hl7.fhir.r4b.model.ExpressionNode)1