Work on getting java9 building

This commit is contained in:
James Agnew 2018-05-03 18:34:29 -04:00
parent f66e6d055e
commit 7688be1231
27 changed files with 484 additions and 608 deletions

View File

@ -80,23 +80,13 @@
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.glassfish.jersey.core</groupId> <groupId>org.jboss.resteasy</groupId>
<artifactId>jersey-server</artifactId> <artifactId>resteasy-jaxrs</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.glassfish.jersey.containers</groupId> <groupId>org.jboss.resteasy</groupId>
<artifactId>jersey-container-servlet-core</artifactId> <artifactId>resteasy-client</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>

View File

@ -88,6 +88,11 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</dependency>
<!-- Unit test dependencies --> <!-- Unit test dependencies -->
<dependency> <dependency>
<groupId>org.codehaus.woodstox</groupId> <groupId>org.codehaus.woodstox</groupId>
@ -109,6 +114,20 @@
<artifactId>jetty-servlet</artifactId> <artifactId>jetty-servlet</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<scope>test</scope>
</dependency>
<!--
<dependency> <dependency>
<groupId>org.glassfish.jersey.core</groupId> <groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId> <artifactId>jersey-server</artifactId>
@ -129,6 +148,8 @@
<artifactId>jersey-media-moxy</artifactId> <artifactId>jersey-media-moxy</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
-->
<dependency> <dependency>
<groupId>ch.qos.logback</groupId> <groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId> <artifactId>logback-classic</artifactId>

View File

@ -69,6 +69,7 @@ public abstract class AbstractJaxRsConformanceProvider extends AbstractJaxRsProv
private org.hl7.fhir.dstu2016may.model.Conformance myDstu2_1Conformance; private org.hl7.fhir.dstu2016may.model.Conformance myDstu2_1Conformance;
private org.hl7.fhir.instance.model.Conformance myDstu2Hl7OrgConformance; private org.hl7.fhir.instance.model.Conformance myDstu2Hl7OrgConformance;
private ca.uhn.fhir.model.dstu2.resource.Conformance myDstu2Conformance; private ca.uhn.fhir.model.dstu2.resource.Conformance myDstu2Conformance;
private boolean myInitialized;
/** /**
* Constructor allowing the description, servername and server to be set * Constructor allowing the description, servername and server to be set
@ -112,7 +113,11 @@ public abstract class AbstractJaxRsConformanceProvider extends AbstractJaxRsProv
* conformance * conformance
*/ */
@PostConstruct @PostConstruct
protected void setUpPostConstruct() { protected synchronized void setUpPostConstruct() {
if (myInitialized) {
return;
}
for (Entry<Class<? extends IResourceProvider>, IResourceProvider> provider : getProviders().entrySet()) { for (Entry<Class<? extends IResourceProvider>, IResourceProvider> provider : getProviders().entrySet()) {
addProvider(provider.getValue(), provider.getKey()); addProvider(provider.getValue(), provider.getKey());
} }
@ -155,6 +160,8 @@ public abstract class AbstractJaxRsConformanceProvider extends AbstractJaxRsProv
default: default:
throw new ConfigurationException("Unsupported Fhir version: " + fhirContextVersion); throw new ConfigurationException("Unsupported Fhir version: " + fhirContextVersion);
} }
myInitialized = true;
} }
/** /**
@ -184,6 +191,8 @@ public abstract class AbstractJaxRsConformanceProvider extends AbstractJaxRsProv
@GET @GET
@Path("/metadata") @Path("/metadata")
public Response conformance() throws IOException { public Response conformance() throws IOException {
setUpPostConstruct();
Builder request = getRequest(RequestTypeEnum.OPTIONS, RestOperationTypeEnum.METADATA); Builder request = getRequest(RequestTypeEnum.OPTIONS, RestOperationTypeEnum.METADATA);
IRestfulResponse response = request.build().getResponse(); IRestfulResponse response = request.build().getResponse();
response.addHeader(Constants.HEADER_CORS_ALLOW_ORIGIN, "*"); response.addHeader(Constants.HEADER_CORS_ALLOW_ORIGIN, "*");

View File

@ -47,8 +47,8 @@ import ca.uhn.fhir.rest.server.method.BaseMethodBinding;
* a large amount of the fhir api functionality using JAXRS * a large amount of the fhir api functionality using JAXRS
* @author Peter Van Houte | peter.vanhoute@agfa.com | Agfa Healthcare * @author Peter Van Houte | peter.vanhoute@agfa.com | Agfa Healthcare
*/ */
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN }) @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN, Constants.CT_FHIR_JSON, Constants.CT_FHIR_XML })
@Consumes({ MediaType.APPLICATION_FORM_URLENCODED, MediaType.APPLICATION_JSON, Constants.CT_FHIR_JSON, Constants.CT_FHIR_XML, Constants.CT_FHIR_JSON_NEW, Constants.CT_FHIR_XML_NEW }) @Consumes({ MediaType.APPLICATION_FORM_URLENCODED, MediaType.APPLICATION_JSON, Constants.CT_FHIR_JSON, Constants.CT_FHIR_XML, Constants.CT_FHIR_JSON_NEW, Constants.CT_FHIR_XML_NEW, "application/octet-stream" })
@Interceptors(JaxRsExceptionInterceptor.class) @Interceptors(JaxRsExceptionInterceptor.class)
public abstract class AbstractJaxRsResourceProvider<R extends IBaseResource> extends AbstractJaxRsProvider public abstract class AbstractJaxRsResourceProvider<R extends IBaseResource> extends AbstractJaxRsProvider

View File

@ -118,7 +118,7 @@ public class JaxRsMethodBindings {
*/ */
public BaseMethodBinding<?> getBinding(RestOperationTypeEnum operationType, String theBindingKey) { public BaseMethodBinding<?> getBinding(RestOperationTypeEnum operationType, String theBindingKey) {
String bindingKey = StringUtils.defaultIfBlank(theBindingKey, DEFAULT_METHOD_KEY); String bindingKey = StringUtils.defaultIfBlank(theBindingKey, DEFAULT_METHOD_KEY);
ConcurrentHashMap<String, BaseMethodBinding<?>> map = operationBindings.get(operationType); ConcurrentHashMap<String, BaseMethodBinding<?>> map = getMapForOperation(operationType);
if(map == null || !map.containsKey(bindingKey)) { if(map == null || !map.containsKey(bindingKey)) {
throw new NotImplementedOperationException("Operation not implemented"); throw new NotImplementedOperationException("Operation not implemented");
} else { } else {

View File

@ -6,6 +6,7 @@ import static org.junit.Assert.*;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import javax.annotation.Priority;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -81,7 +82,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testAcceptHeaderFetchConformance() throws Exception { public void testAcceptHeaderFetchConformance() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Conformance conf = new Conformance(); Conformance conf = new Conformance();
@ -115,7 +116,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testAcceptHeaderPreflightConformance() throws Exception { public void testAcceptHeaderPreflightConformance() {
final IParser p = ourCtx.newXmlParser(); final IParser p = ourCtx.newXmlParser();
final Conformance conf = new Conformance(); final Conformance conf = new Conformance();
@ -145,7 +146,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testAcceptHeaderPreflightConformancePreferJson() throws Exception { public void testAcceptHeaderPreflightConformancePreferJson() {
final IParser p = ourCtx.newXmlParser(); final IParser p = ourCtx.newXmlParser();
final Conformance conf = new Conformance(); final Conformance conf = new Conformance();
@ -175,7 +176,7 @@ public class GenericJaxRsClientDstu2Test {
@Test @Test
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public void testConformance() throws Exception { public void testConformance() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Conformance conf = new Conformance(); Conformance conf = new Conformance();
@ -198,7 +199,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testProviderWhereWeForgotToSetTheContext() throws Exception { public void testProviderWhereWeForgotToSetTheContext() {
JaxRsRestfulClientFactory clientFactory = new JaxRsRestfulClientFactory(); // no ctx JaxRsRestfulClientFactory clientFactory = new JaxRsRestfulClientFactory(); // no ctx
clientFactory.setServerValidationMode(ServerValidationModeEnum.NEVER); clientFactory.setServerValidationMode(ServerValidationModeEnum.NEVER);
@ -214,7 +215,7 @@ public class GenericJaxRsClientDstu2Test {
@Test @Test
public void testCreate() throws Exception { public void testCreate() {
IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir"); IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir");
@ -246,7 +247,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testCreateConditional() throws Exception { public void testCreateConditional() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
@ -290,7 +291,7 @@ public class GenericJaxRsClientDstu2Test {
@Test @Test
public void testCreatePrefer() throws Exception { public void testCreatePrefer() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
@ -315,7 +316,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testCreateReturningResourceBody() throws Exception { public void testCreateReturningResourceBody() {
Patient p = new Patient(); Patient p = new Patient();
p.setId("123"); p.setId("123");
final String formatted = ourCtx.newXmlParser().encodeResourceToString(p); final String formatted = ourCtx.newXmlParser().encodeResourceToString(p);
@ -338,7 +339,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testDeleteConditional() throws Exception { public void testDeleteConditional() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir"); IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir");
@ -363,7 +364,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testDelete() throws Exception { public void testDelete() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir"); IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir");
@ -377,7 +378,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testHistory() throws Exception { public void testHistory() {
final String msg = getPatientFeedWithOneResult(); final String msg = getPatientFeedWithOneResult();
@ -474,7 +475,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testMetaAdd() throws Exception { public void testMetaAdd() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
MetaDt inMeta = new MetaDt().addProfile("urn:profile:in"); MetaDt inMeta = new MetaDt().addProfile("urn:profile:in");
@ -507,7 +508,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testMetaGet() throws Exception { public void testMetaGet() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters inParams = new Parameters(); Parameters inParams = new Parameters();
@ -563,7 +564,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testOperationAsGetWithInParameters() throws Exception { public void testOperationAsGetWithInParameters() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters inParams = new Parameters(); Parameters inParams = new Parameters();
@ -642,7 +643,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testOperationAsGetWithNoInParameters() throws Exception { public void testOperationAsGetWithNoInParameters() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters outParams = new Parameters(); Parameters outParams = new Parameters();
@ -713,7 +714,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testOperationWithBundleResponseJson() throws Exception { public void testOperationWithBundleResponseJson() {
ourResponseContentType = Constants.CT_FHIR_JSON; ourResponseContentType = Constants.CT_FHIR_JSON;
final String respString = "{\n" + " \"resourceType\":\"Bundle\",\n" + " \"id\":\"8cef5f2a-0ba9-43a5-be26-c8dde9ff0e19\",\n" + " \"base\":\"http://localhost:" + ourPort + "/fhir\"\n" + "}"; final String respString = "{\n" + " \"resourceType\":\"Bundle\",\n" + " \"id\":\"8cef5f2a-0ba9-43a5-be26-c8dde9ff0e19\",\n" + " \"base\":\"http://localhost:" + ourPort + "/fhir\"\n" + "}";
@ -743,7 +744,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testOperationWithBundleResponseXml() throws Exception { public void testOperationWithBundleResponseXml() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters inParams = new Parameters(); Parameters inParams = new Parameters();
@ -780,7 +781,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testOperationWithInlineParams() throws Exception { public void testOperationWithInlineParams() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters outParams = new Parameters(); Parameters outParams = new Parameters();
@ -899,7 +900,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testOperationWithProfiledDatatypeParam() throws IOException, Exception { public void testOperationWithProfiledDatatypeParam() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters outParams = new Parameters(); Parameters outParams = new Parameters();
@ -948,7 +949,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testOperationWithListOfParameterResponse() throws Exception { public void testOperationWithListOfParameterResponse() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters inParams = new Parameters(); Parameters inParams = new Parameters();
@ -1023,7 +1024,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testOperationWithNoInParameters() throws Exception { public void testOperationWithNoInParameters() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters inParams = new Parameters(); Parameters inParams = new Parameters();
@ -1102,7 +1103,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testPageNext() throws Exception { public void testPageNext() {
ourResponseContentType = Constants.CT_FHIR_XML + "; charset=UTF-8"; ourResponseContentType = Constants.CT_FHIR_XML + "; charset=UTF-8";
ourResponseBody = getPatientFeedWithOneResult(); ourResponseBody = getPatientFeedWithOneResult();
@ -1129,7 +1130,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testPageNextNoLink() throws Exception { public void testPageNextNoLink() {
IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir"); IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir");
ca.uhn.fhir.model.dstu2.resource.Bundle sourceBundle = new ca.uhn.fhir.model.dstu2.resource.Bundle(); ca.uhn.fhir.model.dstu2.resource.Bundle sourceBundle = new ca.uhn.fhir.model.dstu2.resource.Bundle();
@ -1141,7 +1142,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testPagePrev() throws Exception { public void testPagePrev() {
@ -1187,7 +1188,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testReadByUri() throws Exception { public void testReadByUri() {
Patient patient = new Patient(); Patient patient = new Patient();
patient.addName().addFamily("FAM"); patient.addName().addFamily("FAM");
@ -1207,7 +1208,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testReadFluentByUri() throws Exception { public void testReadFluentByUri() {
Patient patient = new Patient(); Patient patient = new Patient();
patient.addName().addFamily("FAM"); patient.addName().addFamily("FAM");
@ -1220,13 +1221,13 @@ public class GenericJaxRsClientDstu2Test {
Patient response; Patient response;
response = (Patient) client.read().resource(Patient.class).withUrl(new IdDt("http://localhost:" + ourPort + "/AAA/Patient/123")).execute(); response = client.read().resource(Patient.class).withUrl(new IdDt("http://localhost:" + ourPort + "/AAA/Patient/123")).execute();
assertEquals("http://localhost:" + ourPort + "/AAA/Patient/123", ourRequestUri); assertEquals("http://localhost:" + ourPort + "/AAA/Patient/123", ourRequestUri);
assertEquals("FAM", response.getName().get(0).getFamily().get(0).getValue()); assertEquals("FAM", response.getName().get(0).getFamily().get(0).getValue());
} }
@Test @Test
public void testReadUpdatedHeaderDoesntOverwriteResourceValue() throws Exception { public void testReadUpdatedHeaderDoesntOverwriteResourceValue() {
final String input = "<Bundle xmlns=\"http://hl7.org/fhir\">\n" + final String input = "<Bundle xmlns=\"http://hl7.org/fhir\">\n" +
@ -1264,7 +1265,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testReadWithElementsParam() throws Exception { public void testReadWithElementsParam() {
String msg = "{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}"; String msg = "{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}";
@ -1287,7 +1288,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testReadWithSummaryInvalid() throws Exception { public void testReadWithSummaryInvalid() {
String msg = "<>>>><<<<>"; String msg = "<>>>><<<<>";
@ -1313,7 +1314,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testReadWithSummaryParamHtml() throws Exception { public void testReadWithSummaryParamHtml() {
String msg = "<div>HELP IM A DIV</div>"; String msg = "<div>HELP IM A DIV</div>";
@ -1338,7 +1339,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testSearchByString() throws Exception { public void testSearchByString() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1362,7 +1363,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testSearchByUrl() throws Exception { public void testSearchByUrl() {
final String msg = getPatientFeedWithOneResult(); final String msg = getPatientFeedWithOneResult();
@ -1469,7 +1470,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testSearchWithElementsParam() throws Exception { public void testSearchWithElementsParam() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1496,7 +1497,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testSearchByPost() throws Exception { public void testSearchByPost() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1533,7 +1534,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testSearchByPostUseJson() throws Exception { public void testSearchByPostUseJson() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1571,7 +1572,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testSearchWithLastUpdated() throws Exception { public void testSearchWithLastUpdated() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1598,7 +1599,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testSearchWithProfileAndSecurity() throws Exception { public void testSearchWithProfileAndSecurity() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1628,7 +1629,7 @@ public class GenericJaxRsClientDstu2Test {
@SuppressWarnings("unused") @SuppressWarnings("unused")
@Test @Test
public void testSearchWithReverseInclude() throws Exception { public void testSearchWithReverseInclude() {
String msg = getPatientFeedWithOneResult(); String msg = getPatientFeedWithOneResult();
@ -1655,7 +1656,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testSearchWithSummaryParam() throws Exception { public void testSearchWithSummaryParam() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1682,7 +1683,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testTransactionWithListOfResources() throws Exception { public void testTransactionWithListOfResources() {
ca.uhn.fhir.model.dstu2.resource.Bundle resp = new ca.uhn.fhir.model.dstu2.resource.Bundle(); ca.uhn.fhir.model.dstu2.resource.Bundle resp = new ca.uhn.fhir.model.dstu2.resource.Bundle();
resp.addEntry().getResponse().setLocation("Patient/1/_history/1"); resp.addEntry().getResponse().setLocation("Patient/1/_history/1");
@ -1735,7 +1736,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testTransactionWithString() throws Exception { public void testTransactionWithString() {
ca.uhn.fhir.model.dstu2.resource.Bundle req = new ca.uhn.fhir.model.dstu2.resource.Bundle(); ca.uhn.fhir.model.dstu2.resource.Bundle req = new ca.uhn.fhir.model.dstu2.resource.Bundle();
Patient patient = new Patient(); Patient patient = new Patient();
@ -1781,7 +1782,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testTransactionWithTransactionResource() throws Exception { public void testTransactionWithTransactionResource() {
ca.uhn.fhir.model.dstu2.resource.Bundle resp = new ca.uhn.fhir.model.dstu2.resource.Bundle(); ca.uhn.fhir.model.dstu2.resource.Bundle resp = new ca.uhn.fhir.model.dstu2.resource.Bundle();
resp.addEntry().getResponse().setLocation("Patient/1/_history/1"); resp.addEntry().getResponse().setLocation("Patient/1/_history/1");
@ -1822,7 +1823,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testUpdateConditional() throws Exception { public void testUpdateConditional() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
@ -1877,7 +1878,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testUpdateNonFluent() throws Exception { public void testUpdateNonFluent() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
@ -1907,7 +1908,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testUpdatePrefer() throws Exception { public void testUpdatePrefer() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
@ -1933,7 +1934,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testUpdateReturningResourceBody() throws Exception { public void testUpdateReturningResourceBody() {
Patient p = new Patient(); Patient p = new Patient();
p.setId("123"); p.setId("123");
final String formatted = ourCtx.newXmlParser().encodeResourceToString(p); final String formatted = ourCtx.newXmlParser().encodeResourceToString(p);
@ -1956,7 +1957,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testValidateFluent() throws Exception { public void testValidateFluent() {
OperationOutcome oo = new OperationOutcome(); OperationOutcome oo = new OperationOutcome();
oo.addIssue().setDiagnostics("FOOBAR"); oo.addIssue().setDiagnostics("FOOBAR");
@ -2010,7 +2011,7 @@ public class GenericJaxRsClientDstu2Test {
} }
@Test @Test
public void testValidateNonFluent() throws Exception { public void testValidateNonFluent() {
OperationOutcome oo = new OperationOutcome(); OperationOutcome oo = new OperationOutcome();
oo.addIssue().setDiagnostics("FOOBAR"); oo.addIssue().setDiagnostics("FOOBAR");
final String msg = ourCtx.newXmlParser().encodeResourceToString(oo); final String msg = ourCtx.newXmlParser().encodeResourceToString(oo);
@ -2080,7 +2081,7 @@ public class GenericJaxRsClientDstu2Test {
ourServer.setHandler(new AbstractHandler() { ourServer.setHandler(new AbstractHandler() {
@Override @Override
public void handle(String theArg0, Request theRequest, HttpServletRequest theServletRequest, HttpServletResponse theResp) throws IOException, ServletException { public void handle(String theArg0, Request theRequest, HttpServletRequest theServletRequest, HttpServletResponse theResp) throws IOException {
theRequest.setHandled(true); theRequest.setHandled(true);
ourRequestUri = "http:" + theRequest.getHttpURI().toString(); ourRequestUri = "http:" + theRequest.getHttpURI().toString();
ourRequestUriAll.add(ourRequestUri); ourRequestUriAll.add(ourRequestUri);

View File

@ -79,7 +79,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testAcceptHeaderFetchConformance() throws Exception { public void testAcceptHeaderFetchConformance() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
CapabilityStatement conf = new CapabilityStatement(); CapabilityStatement conf = new CapabilityStatement();
@ -113,7 +113,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testAcceptHeaderPreflightConformance() throws Exception { public void testAcceptHeaderPreflightConformance() {
final IParser p = ourCtx.newXmlParser(); final IParser p = ourCtx.newXmlParser();
final CapabilityStatement conf = new CapabilityStatement(); final CapabilityStatement conf = new CapabilityStatement();
@ -143,7 +143,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testAcceptHeaderPreflightConformancePreferJson() throws Exception { public void testAcceptHeaderPreflightConformancePreferJson() {
final IParser p = ourCtx.newXmlParser(); final IParser p = ourCtx.newXmlParser();
final CapabilityStatement conf = new CapabilityStatement(); final CapabilityStatement conf = new CapabilityStatement();
@ -172,7 +172,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testConformance() throws Exception { public void testConformance() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
CapabilityStatement conf = new CapabilityStatement(); CapabilityStatement conf = new CapabilityStatement();
@ -188,7 +188,7 @@ public class GenericJaxRsClientDstu3Test {
//@formatter:off //@formatter:off
CapabilityStatement resp = (CapabilityStatement)client.fetchConformance().ofType(CapabilityStatement.class).execute(); CapabilityStatement resp = client.fetchConformance().ofType(CapabilityStatement.class).execute();
//@formatter:on //@formatter:on
assertEquals("http://localhost:" + ourPort + "/fhir/metadata", ourRequestUri); assertEquals("http://localhost:" + ourPort + "/fhir/metadata", ourRequestUri);
@ -199,7 +199,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testProviderWhereWeForgotToSetTheContext() throws Exception { public void testProviderWhereWeForgotToSetTheContext() {
JaxRsRestfulClientFactory clientFactory = new JaxRsRestfulClientFactory(); // no ctx JaxRsRestfulClientFactory clientFactory = new JaxRsRestfulClientFactory(); // no ctx
clientFactory.setServerValidationMode(ServerValidationModeEnum.NEVER); clientFactory.setServerValidationMode(ServerValidationModeEnum.NEVER);
@ -215,7 +215,7 @@ public class GenericJaxRsClientDstu3Test {
@Test @Test
public void testCreate() throws Exception { public void testCreate() {
IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir"); IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir");
@ -247,7 +247,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testCreateConditional() throws Exception { public void testCreateConditional() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
@ -289,7 +289,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testCreate2() throws Exception { public void testCreate2() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir"); IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir");
@ -310,7 +310,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testCreatePrefer() throws Exception { public void testCreatePrefer() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
@ -335,7 +335,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testCreateReturningResourceBody() throws Exception { public void testCreateReturningResourceBody() {
Patient p = new Patient(); Patient p = new Patient();
p.setId("123"); p.setId("123");
final String formatted = ourCtx.newXmlParser().encodeResourceToString(p); final String formatted = ourCtx.newXmlParser().encodeResourceToString(p);
@ -358,7 +358,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testDeleteConditional() throws Exception { public void testDeleteConditional() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir"); IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir");
@ -384,7 +384,7 @@ public class GenericJaxRsClientDstu3Test {
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
@Test @Test
public void testDeleteNonFluent() throws Exception { public void testDeleteNonFluent() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir"); IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir");
@ -398,7 +398,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testHistory() throws Exception { public void testHistory() {
final String msg = getPatientFeedWithOneResult(); final String msg = getPatientFeedWithOneResult();
@ -494,7 +494,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testMetaAdd() throws Exception { public void testMetaAdd() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Meta inMeta = new Meta().addProfile("urn:profile:in"); Meta inMeta = new Meta().addProfile("urn:profile:in");
@ -527,7 +527,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testMetaGet() throws Exception { public void testMetaGet() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters inParams = new Parameters(); Parameters inParams = new Parameters();
@ -583,7 +583,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testOperationAsGetWithInParameters() throws Exception { public void testOperationAsGetWithInParameters() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters inParams = new Parameters(); Parameters inParams = new Parameters();
@ -662,7 +662,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testOperationAsGetWithNoInParameters() throws Exception { public void testOperationAsGetWithNoInParameters() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters outParams = new Parameters(); Parameters outParams = new Parameters();
@ -733,7 +733,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testOperationWithBundleResponseJson() throws Exception { public void testOperationWithBundleResponseJson() {
ourResponseContentType = Constants.CT_FHIR_JSON; ourResponseContentType = Constants.CT_FHIR_JSON;
final String respString = "{\n" + " \"resourceType\":\"Bundle\",\n" + " \"id\":\"8cef5f2a-0ba9-43a5-be26-c8dde9ff0e19\",\n" + " \"base\":\"http://localhost:" + ourPort + "/fhir\"\n" + "}"; final String respString = "{\n" + " \"resourceType\":\"Bundle\",\n" + " \"id\":\"8cef5f2a-0ba9-43a5-be26-c8dde9ff0e19\",\n" + " \"base\":\"http://localhost:" + ourPort + "/fhir\"\n" + "}";
@ -763,7 +763,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testOperationWithBundleResponseXml() throws Exception { public void testOperationWithBundleResponseXml() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters inParams = new Parameters(); Parameters inParams = new Parameters();
@ -800,7 +800,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testOperationWithInlineParams() throws Exception { public void testOperationWithInlineParams() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters outParams = new Parameters(); Parameters outParams = new Parameters();
@ -919,7 +919,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testOperationWithProfiledDatatypeParam() throws IOException, Exception { public void testOperationWithProfiledDatatypeParam() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters outParams = new Parameters(); Parameters outParams = new Parameters();
@ -968,7 +968,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testOperationWithListOfParameterResponse() throws Exception { public void testOperationWithListOfParameterResponse() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters inParams = new Parameters(); Parameters inParams = new Parameters();
@ -1043,7 +1043,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testOperationWithNoInParameters() throws Exception { public void testOperationWithNoInParameters() {
IParser p = ourCtx.newXmlParser(); IParser p = ourCtx.newXmlParser();
Parameters inParams = new Parameters(); Parameters inParams = new Parameters();
@ -1122,7 +1122,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testPageNext() throws Exception { public void testPageNext() {
ourResponseContentType = Constants.CT_FHIR_XML + "; charset=UTF-8"; ourResponseContentType = Constants.CT_FHIR_XML + "; charset=UTF-8";
ourResponseBody = getPatientFeedWithOneResult(); ourResponseBody = getPatientFeedWithOneResult();
@ -1149,7 +1149,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testPageNextNoLink() throws Exception { public void testPageNextNoLink() {
IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir"); IGenericClient client = ourCtx.newRestfulGenericClient("http://localhost:" + ourPort + "/fhir");
org.hl7.fhir.dstu3.model.Bundle sourceBundle = new org.hl7.fhir.dstu3.model.Bundle(); org.hl7.fhir.dstu3.model.Bundle sourceBundle = new org.hl7.fhir.dstu3.model.Bundle();
@ -1161,7 +1161,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testPagePrev() throws Exception { public void testPagePrev() {
@ -1207,7 +1207,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testReadByUri() throws Exception { public void testReadByUri() {
Patient patient = new Patient(); Patient patient = new Patient();
patient.addName().setFamily("FAM"); patient.addName().setFamily("FAM");
@ -1227,7 +1227,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testReadFluentByUri() throws Exception { public void testReadFluentByUri() {
Patient patient = new Patient(); Patient patient = new Patient();
patient.addName().setFamily("FAM"); patient.addName().setFamily("FAM");
@ -1240,13 +1240,13 @@ public class GenericJaxRsClientDstu3Test {
Patient response; Patient response;
response = (Patient) client.read().resource(Patient.class).withUrl(new IdType("http://localhost:" + ourPort + "/AAA/Patient/123")).execute(); response = client.read().resource(Patient.class).withUrl(new IdType("http://localhost:" + ourPort + "/AAA/Patient/123")).execute();
assertEquals("http://localhost:" + ourPort + "/AAA/Patient/123", ourRequestUri); assertEquals("http://localhost:" + ourPort + "/AAA/Patient/123", ourRequestUri);
assertEquals("FAM", response.getName().get(0).getFamily()); assertEquals("FAM", response.getName().get(0).getFamily());
} }
@Test @Test
public void testReadUpdatedHeaderDoesntOverwriteResourceValue() throws Exception { public void testReadUpdatedHeaderDoesntOverwriteResourceValue() {
//@formatter:off //@formatter:off
final String input = "<Bundle xmlns=\"http://hl7.org/fhir\">\n" + final String input = "<Bundle xmlns=\"http://hl7.org/fhir\">\n" +
@ -1286,7 +1286,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testReadWithElementsParam() throws Exception { public void testReadWithElementsParam() {
String msg = "{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}"; String msg = "{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}";
@ -1311,7 +1311,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testReadWithSummaryInvalid() throws Exception { public void testReadWithSummaryInvalid() {
String msg = "<>>>><<<<>"; String msg = "<>>>><<<<>";
@ -1338,7 +1338,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testReadWithSummaryParamHtml() throws Exception { public void testReadWithSummaryParamHtml() {
String msg = "<div>HELP IM A DIV</div>"; String msg = "<div>HELP IM A DIV</div>";
@ -1365,7 +1365,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testSearchByString() throws Exception { public void testSearchByString() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1391,7 +1391,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testSearchByUrl() throws Exception { public void testSearchByUrl() {
final String msg = getPatientFeedWithOneResult(); final String msg = getPatientFeedWithOneResult();
@ -1498,7 +1498,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testSearchWithElementsParam() throws Exception { public void testSearchWithElementsParam() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1525,7 +1525,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testSearchByPost() throws Exception { public void testSearchByPost() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1562,7 +1562,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testSearchByPostUseJson() throws Exception { public void testSearchByPostUseJson() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1600,7 +1600,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testSearchWithLastUpdated() throws Exception { public void testSearchWithLastUpdated() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1627,7 +1627,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testSearchWithProfileAndSecurity() throws Exception { public void testSearchWithProfileAndSecurity() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1657,7 +1657,7 @@ public class GenericJaxRsClientDstu3Test {
@SuppressWarnings("unused") @SuppressWarnings("unused")
@Test @Test
public void testSearchWithReverseInclude() throws Exception { public void testSearchWithReverseInclude() {
String msg = getPatientFeedWithOneResult(); String msg = getPatientFeedWithOneResult();
@ -1684,7 +1684,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testSearchWithSummaryParam() throws Exception { public void testSearchWithSummaryParam() {
String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}"; String msg = "{\"resourceType\":\"Bundle\",\"id\":null,\"base\":\"http://localhost:57931/fhir/contextDev\",\"total\":1,\"link\":[{\"relation\":\"self\",\"url\":\"http://localhost:57931/fhir/contextDev/Patient?identifier=urn%3AMultiFhirVersionTest%7CtestSubmitPatient01&_format=json\"}],\"entry\":[{\"resource\":{\"resourceType\":\"Patient\",\"id\":\"1\",\"meta\":{\"versionId\":\"1\",\"lastUpdated\":\"2014-12-20T18:41:29.706-05:00\"},\"identifier\":[{\"system\":\"urn:MultiFhirVersionTest\",\"value\":\"testSubmitPatient01\"}]}}]}";
@ -1711,7 +1711,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testTransactionWithListOfResources() throws Exception { public void testTransactionWithListOfResources() {
org.hl7.fhir.dstu3.model.Bundle resp = new org.hl7.fhir.dstu3.model.Bundle(); org.hl7.fhir.dstu3.model.Bundle resp = new org.hl7.fhir.dstu3.model.Bundle();
resp.addEntry().getResponse().setLocation("Patient/1/_history/1"); resp.addEntry().getResponse().setLocation("Patient/1/_history/1");
@ -1764,7 +1764,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testTransactionWithString() throws Exception { public void testTransactionWithString() {
org.hl7.fhir.dstu3.model.Bundle req = new org.hl7.fhir.dstu3.model.Bundle(); org.hl7.fhir.dstu3.model.Bundle req = new org.hl7.fhir.dstu3.model.Bundle();
Patient patient = new Patient(); Patient patient = new Patient();
@ -1810,7 +1810,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testTransactionWithTransactionResource() throws Exception { public void testTransactionWithTransactionResource() {
org.hl7.fhir.dstu3.model.Bundle resp = new org.hl7.fhir.dstu3.model.Bundle(); org.hl7.fhir.dstu3.model.Bundle resp = new org.hl7.fhir.dstu3.model.Bundle();
resp.addEntry().getResponse().setLocation("Patient/1/_history/1"); resp.addEntry().getResponse().setLocation("Patient/1/_history/1");
@ -1851,7 +1851,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testUpdateConditional() throws Exception { public void testUpdateConditional() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
@ -1906,7 +1906,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testUpdateNonFluent() throws Exception { public void testUpdateNonFluent() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
@ -1936,7 +1936,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testUpdatePrefer() throws Exception { public void testUpdatePrefer() {
ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT; ourResponseStatus = Constants.STATUS_HTTP_204_NO_CONTENT;
@ -1962,7 +1962,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testUpdateReturningResourceBody() throws Exception { public void testUpdateReturningResourceBody() {
Patient p = new Patient(); Patient p = new Patient();
p.setId("123"); p.setId("123");
final String formatted = ourCtx.newXmlParser().encodeResourceToString(p); final String formatted = ourCtx.newXmlParser().encodeResourceToString(p);
@ -1985,7 +1985,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testValidateFluent() throws Exception { public void testValidateFluent() {
OperationOutcome oo = new OperationOutcome(); OperationOutcome oo = new OperationOutcome();
oo.addIssue().setDiagnostics("FOOBAR"); oo.addIssue().setDiagnostics("FOOBAR");
@ -2039,7 +2039,7 @@ public class GenericJaxRsClientDstu3Test {
} }
@Test @Test
public void testValidateNonFluent() throws Exception { public void testValidateNonFluent() {
OperationOutcome oo = new OperationOutcome(); OperationOutcome oo = new OperationOutcome();
oo.addIssue().setDiagnostics("FOOBAR"); oo.addIssue().setDiagnostics("FOOBAR");
final String msg = ourCtx.newXmlParser().encodeResourceToString(oo); final String msg = ourCtx.newXmlParser().encodeResourceToString(oo);
@ -2109,7 +2109,7 @@ public class GenericJaxRsClientDstu3Test {
ourServer.setHandler(new AbstractHandler() { ourServer.setHandler(new AbstractHandler() {
@Override @Override
public void handle(String theArg0, Request theRequest, HttpServletRequest theServletRequest, HttpServletResponse theResp) throws IOException, ServletException { public void handle(String theArg0, Request theRequest, HttpServletRequest theServletRequest, HttpServletResponse theResp) throws IOException {
theRequest.setHandled(true); theRequest.setHandled(true);
ourRequestUri = "http:" + theRequest.getHttpURI().toString(); ourRequestUri = "http:" + theRequest.getHttpURI().toString();
ourRequestUriAll.add(ourRequestUri); ourRequestUriAll.add(ourRequestUri);

View File

@ -3,51 +3,56 @@ package ca.uhn.fhir.jaxrs.client;
import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.FhirContext;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.client.Client; import javax.ws.rs.client.Client;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import static org.junit.Assert.assertEquals; import static org.hamcrest.CoreMatchers.hasItem;
import static org.junit.Assert.assertNotNull; import static org.hamcrest.core.IsNot.not;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.*;
/** /**
* Created by Sebastien Riviere on 31/07/2017. * Created by Sebastien Riviere on 31/07/2017.
*/ */
public class JaxRsRestfulClientFactoryTest { public class JaxRsRestfulClientFactoryTest {
private final FhirContext context = FhirContext.forDstu2(); private static final Logger ourLog = LoggerFactory.getLogger(JaxRsRestfulClientFactoryTest.class);
private JaxRsRestfulClientFactory factory; private final FhirContext context = FhirContext.forDstu2();
private JaxRsRestfulClientFactory factory;
@Before @Test
public void setUp() { public void emptyConstructorTest() {
factory = new JaxRsRestfulClientFactory(context); assertNotNull(new JaxRsRestfulClientFactory());
} }
@Test @Test
public void emptyConstructorTest() { public void getDefaultNativeClientTest() {
assertNotNull(new JaxRsRestfulClientFactory()); assertNotNull(factory.getNativeClientClient());
} }
@Test @Test
public void getDefaultNativeClientTest() { public void getNativeClientEmptyRegisteredComponentListTest() {
assertNotNull(factory.getNativeClientClient()); factory.register(new ArrayList<>());
} final Client result = factory.getNativeClientClient();
assertNotNull(result);
ourLog.info("Classes: {}", result.getConfiguration().getClasses());
assertThat(result.getConfiguration().getClasses(), not(hasItem(ca.uhn.fhir.jaxrs.client.MyFilter.class)));
}
@Test @Test
public void getNativeClientEmptyRegisteredComponentListTest() { public void getNativeClientRegisteredComponentListTest() {
factory.register(new ArrayList<Class<?>>()); factory.register(Arrays.asList(MyFilter.class, String.class));
final Client result = factory.getNativeClientClient(); final Client result = factory.getNativeClientClient();
assertNotNull(result); assertNotNull(result);
assertTrue(result.getConfiguration().getClasses().isEmpty()); ourLog.info("Classes: {}", result.getConfiguration().getClasses());
} assertThat(result.getConfiguration().getClasses(), hasItem(ca.uhn.fhir.jaxrs.client.MyFilter.class));
}
@Test @Before
public void getNativeClientRegisteredComponentListTest() { public void setUp() {
factory.register(Arrays.asList(MyFilter.class, String.class)); factory = new JaxRsRestfulClientFactory(context);
final Client result = factory.getNativeClientClient(); }
assertNotNull(result);
assertEquals(1, result.getConfiguration().getClasses().size());
}
} }

View File

@ -1,27 +1,24 @@
package ca.uhn.fhir.jaxrs.server; package ca.uhn.fhir.jaxrs.server;
import static org.junit.Assert.assertEquals; import ca.uhn.fhir.context.FhirContext;
import static org.junit.Assert.assertTrue; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProviderDstu2Hl7Org;
import static org.mockito.Mockito.mock; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsMockPatientRestProviderDstu2Hl7Org;
import static org.mockito.Mockito.when; import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.server.IResourceProvider;
import org.jboss.resteasy.specimpl.ResteasyHttpHeaders;
import org.junit.Before;
import org.junit.Test;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.net.URI; import java.net.URI;
import java.util.Arrays; import java.util.Arrays;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import javax.ws.rs.HttpMethod; import static org.junit.Assert.*;
import javax.ws.rs.core.*; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProviderDstu2Hl7Org;
import org.glassfish.jersey.internal.MapPropertiesDelegate;
import org.glassfish.jersey.server.ContainerRequest;
import org.junit.Before;
import org.junit.Test;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsMockPatientRestProviderDstu2Hl7Org;
import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.server.IResourceProvider;
public class AbstractJaxRsConformanceProviderDstu2Hl7OrgTest { public class AbstractJaxRsConformanceProviderDstu2Hl7OrgTest {
@ -29,16 +26,17 @@ public class AbstractJaxRsConformanceProviderDstu2Hl7OrgTest {
private static final String REQUESTURI = BASEURI + "/metadata"; private static final String REQUESTURI = BASEURI + "/metadata";
AbstractJaxRsConformanceProvider provider; AbstractJaxRsConformanceProvider provider;
private ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider> providers; private ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider> providers;
private ContainerRequest headers; private ResteasyHttpHeaders headers;
private MultivaluedHashMap<String, String> queryParameters; private MultivaluedHashMap<String, String> queryParameters;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
// headers
headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
new MapPropertiesDelegate());
// uri info // uri info
queryParameters = new MultivaluedHashMap<String, String>(); queryParameters = new MultivaluedHashMap<>();
// headers
// headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
// new MapPropertiesDelegate());
headers = new ResteasyHttpHeaders(queryParameters);
providers = new ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider>(); providers = new ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider>();

View File

@ -1,27 +1,24 @@
package ca.uhn.fhir.jaxrs.server; package ca.uhn.fhir.jaxrs.server;
import static org.junit.Assert.assertEquals; import ca.uhn.fhir.context.FhirContext;
import static org.junit.Assert.assertTrue; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProviderDstu2_1;
import static org.mockito.Mockito.mock; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsMockPatientRestProviderDstu2_1;
import static org.mockito.Mockito.when; import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.server.IResourceProvider;
import org.jboss.resteasy.specimpl.ResteasyHttpHeaders;
import org.junit.Before;
import org.junit.Test;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.net.URI; import java.net.URI;
import java.util.Arrays; import java.util.Arrays;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import javax.ws.rs.HttpMethod; import static org.junit.Assert.*;
import javax.ws.rs.core.*; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProviderDstu2_1;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsMockPatientRestProviderDstu2_1;
import org.glassfish.jersey.internal.MapPropertiesDelegate;
import org.glassfish.jersey.server.ContainerRequest;
import org.junit.Before;
import org.junit.Test;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.server.IResourceProvider;
public class AbstractJaxRsConformanceProviderDstu2_1Test { public class AbstractJaxRsConformanceProviderDstu2_1Test {
@ -29,19 +26,20 @@ public class AbstractJaxRsConformanceProviderDstu2_1Test {
private static final String REQUESTURI = BASEURI + "/metadata"; private static final String REQUESTURI = BASEURI + "/metadata";
AbstractJaxRsConformanceProvider provider; AbstractJaxRsConformanceProvider provider;
private ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider> providers; private ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider> providers;
private ContainerRequest headers; private ResteasyHttpHeaders headers;
private MultivaluedHashMap<String, String> queryParameters; private MultivaluedHashMap<String, String> queryParameters;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
// headers
headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
new MapPropertiesDelegate());
// uri info // uri info
queryParameters = new MultivaluedHashMap<String, String>(); queryParameters = new MultivaluedHashMap<>();
// headers
// headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
// new MapPropertiesDelegate());
headers = new ResteasyHttpHeaders(queryParameters);
providers = new ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider>(); providers = new ConcurrentHashMap<>();
provider = createConformanceProvider(providers); provider = createConformanceProvider(providers);
} }

View File

@ -1,27 +1,24 @@
package ca.uhn.fhir.jaxrs.server; package ca.uhn.fhir.jaxrs.server;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.net.URI;
import java.util.Arrays;
import java.util.concurrent.ConcurrentHashMap;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.core.*;
import org.glassfish.jersey.internal.MapPropertiesDelegate;
import org.glassfish.jersey.server.ContainerRequest;
import org.junit.Before;
import org.junit.Test;
import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProvider; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProvider;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsMockPatientRestProviderDstu3; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsMockPatientRestProviderDstu3;
import ca.uhn.fhir.rest.api.Constants; import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.server.IResourceProvider; import ca.uhn.fhir.rest.server.IResourceProvider;
import org.jboss.resteasy.specimpl.ResteasyHttpHeaders;
import org.junit.Before;
import org.junit.Test;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.net.URI;
import java.util.Arrays;
import java.util.concurrent.ConcurrentHashMap;
import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class AbstractJaxRsConformanceProviderDstu3Test { public class AbstractJaxRsConformanceProviderDstu3Test {
@ -29,16 +26,17 @@ public class AbstractJaxRsConformanceProviderDstu3Test {
private static final String REQUESTURI = BASEURI + "/metadata"; private static final String REQUESTURI = BASEURI + "/metadata";
AbstractJaxRsConformanceProvider provider; AbstractJaxRsConformanceProvider provider;
private ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider> providers; private ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider> providers;
private ContainerRequest headers; private ResteasyHttpHeaders headers;
private MultivaluedHashMap<String, String> queryParameters; private MultivaluedHashMap<String, String> queryParameters;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
// headers
headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
new MapPropertiesDelegate());
// uri info // uri info
queryParameters = new MultivaluedHashMap<String, String>(); queryParameters = new MultivaluedHashMap<>();
// headers
// headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
// new MapPropertiesDelegate());
headers = new ResteasyHttpHeaders(queryParameters);
providers = new ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider>(); providers = new ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider>();

View File

@ -1,27 +1,24 @@
package ca.uhn.fhir.jaxrs.server; package ca.uhn.fhir.jaxrs.server;
import static org.junit.Assert.assertEquals; import ca.uhn.fhir.context.FhirContext;
import static org.junit.Assert.assertTrue; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProviderR4;
import static org.mockito.Mockito.mock; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsMockPatientRestProviderR4;
import static org.mockito.Mockito.when; import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.server.IResourceProvider;
import org.jboss.resteasy.specimpl.ResteasyHttpHeaders;
import org.junit.Before;
import org.junit.Test;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.net.URI; import java.net.URI;
import java.util.Arrays; import java.util.Arrays;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import javax.ws.rs.HttpMethod; import static org.junit.Assert.*;
import javax.ws.rs.core.*; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProviderR4;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsMockPatientRestProviderR4;
import org.glassfish.jersey.internal.MapPropertiesDelegate;
import org.glassfish.jersey.server.ContainerRequest;
import org.junit.Before;
import org.junit.Test;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.server.IResourceProvider;
public class AbstractJaxRsConformanceProviderR4Test { public class AbstractJaxRsConformanceProviderR4Test {
@ -29,16 +26,17 @@ public class AbstractJaxRsConformanceProviderR4Test {
private static final String REQUESTURI = BASEURI + "/metadata"; private static final String REQUESTURI = BASEURI + "/metadata";
AbstractJaxRsConformanceProvider provider; AbstractJaxRsConformanceProvider provider;
private ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider> providers; private ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider> providers;
private ContainerRequest headers; private ResteasyHttpHeaders headers;
private MultivaluedHashMap<String, String> queryParameters; private MultivaluedHashMap<String, String> queryParameters;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
// headers
headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
new MapPropertiesDelegate());
// uri info // uri info
queryParameters = new MultivaluedHashMap<String, String>(); queryParameters = new MultivaluedHashMap<>();
// headers
// headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
// new MapPropertiesDelegate());
headers = new ResteasyHttpHeaders(queryParameters);
providers = new ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider>(); providers = new ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider>();

View File

@ -1,26 +1,23 @@
package ca.uhn.fhir.jaxrs.server; package ca.uhn.fhir.jaxrs.server;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.net.URI;
import java.util.Arrays;
import java.util.concurrent.ConcurrentHashMap;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.core.*;
import org.glassfish.jersey.internal.MapPropertiesDelegate;
import org.glassfish.jersey.server.ContainerRequest;
import org.junit.Before;
import org.junit.Test;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProvider; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProvider;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsMockPatientRestProvider; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsMockPatientRestProvider;
import ca.uhn.fhir.rest.api.Constants; import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.server.IResourceProvider; import ca.uhn.fhir.rest.server.IResourceProvider;
import org.jboss.resteasy.specimpl.ResteasyHttpHeaders;
import org.junit.Before;
import org.junit.Test;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.net.URI;
import java.util.Arrays;
import java.util.concurrent.ConcurrentHashMap;
import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class AbstractJaxRsConformanceProviderTest { public class AbstractJaxRsConformanceProviderTest {
@ -28,16 +25,17 @@ public class AbstractJaxRsConformanceProviderTest {
private static final String REQUESTURI = BASEURI + "/metadata"; private static final String REQUESTURI = BASEURI + "/metadata";
AbstractJaxRsConformanceProvider provider; AbstractJaxRsConformanceProvider provider;
private ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider> providers; private ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider> providers;
private ContainerRequest headers; private ResteasyHttpHeaders headers;
private MultivaluedHashMap<String, String> queryParameters; private MultivaluedHashMap<String, String> queryParameters;
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
// headers
headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
new MapPropertiesDelegate());
// uri info // uri info
queryParameters = new MultivaluedHashMap<String, String>(); queryParameters = new MultivaluedHashMap<>();
// headers
// headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
// new MapPropertiesDelegate());
headers = new ResteasyHttpHeaders(queryParameters);
providers = new ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider>(); providers = new ConcurrentHashMap<Class<? extends IResourceProvider>, IResourceProvider>();

View File

@ -135,7 +135,7 @@ public class AbstractJaxRsResourceProviderDstu3Test {
@Test @Test
public void testConformance() { public void testConformance() {
final CapabilityStatement conf = client.fetchConformance().ofType(CapabilityStatement.class).execute(); final CapabilityStatement conf = client.fetchConformance().ofType(CapabilityStatement.class).execute();
assertEquals(conf.getRest().get(0).getResource().get(0).getType().toString(), "Patient"); assertEquals(conf.getRest().get(0).getResource().get(0).getType(), "Patient");
} }
@Test @Test
@ -149,7 +149,7 @@ public class AbstractJaxRsResourceProviderDstu3Test {
client.setEncoding(EncodingEnum.JSON); client.setEncoding(EncodingEnum.JSON);
final MethodOutcome response = client.create().resource(toCreate).prefer(PreferReturnEnum.REPRESENTATION) final MethodOutcome response = client.create().resource(toCreate).prefer(PreferReturnEnum.REPRESENTATION)
.execute(); .execute();
IBaseResource resource = (IBaseResource) response.getResource(); IBaseResource resource = response.getResource();
compareResultId(1, resource); compareResultId(1, resource);
assertEquals("myIdentifier", patientCaptor.getValue().getIdentifier().get(0).getValue()); assertEquals("myIdentifier", patientCaptor.getValue().getIdentifier().get(0).getValue());
} }
@ -162,7 +162,7 @@ public class AbstractJaxRsResourceProviderDstu3Test {
} }
@Test @Test
public void testConditionalDelete() throws Exception { public void testConditionalDelete() {
when(mock.delete(idCaptor.capture(), conditionalCaptor.capture())).thenReturn(new MethodOutcome()); when(mock.delete(idCaptor.capture(), conditionalCaptor.capture())).thenReturn(new MethodOutcome());
client.delete().resourceConditionalByType("Patient").where(Patient.IDENTIFIER.exactly().identifier("2")).execute(); client.delete().resourceConditionalByType("Patient").where(Patient.IDENTIFIER.exactly().identifier("2")).execute();
assertEquals("Patient?identifier=2&_format=json", conditionalCaptor.getValue()); assertEquals("Patient?identifier=2&_format=json", conditionalCaptor.getValue());
@ -187,7 +187,7 @@ public class AbstractJaxRsResourceProviderDstu3Test {
assertEquals("outputValue", ((StringType)outParams.getParameter().get(0).getValue()).getValueAsString()); assertEquals("outputValue", ((StringType)outParams.getParameter().get(0).getValue()).getValueAsString());
} }
class StringTypeMatcher extends ArgumentMatcher<StringType> { class StringTypeMatcher implements ArgumentMatcher<StringType> {
private StringType myStringType; private StringType myStringType;
public StringTypeMatcher(StringType stringType) { public StringTypeMatcher(StringType stringType) {
@ -195,8 +195,8 @@ public class AbstractJaxRsResourceProviderDstu3Test {
} }
@Override @Override
public boolean matches(Object argument) { public boolean matches(StringType argument) {
return myStringType.getValue().equals(((StringType)argument).getValue()); return myStringType.getValue().equals(argument.getValue());
} }
} }
@ -214,8 +214,14 @@ public class AbstractJaxRsResourceProviderDstu3Test {
inParams.addParameter().setName("dummy").setValue(new StringType("myAwesomeDummyValue")); inParams.addParameter().setName("dummy").setValue(new StringType("myAwesomeDummyValue"));
// invoke // invoke
Parameters outParams = client.operation().onInstance(new IdType("Patient", "1")).named("$someCustomOperation") Parameters outParams = client
.withParameters(inParams).useHttpGet().execute(); .operation()
.onInstance(new IdType("Patient", "1"))
.named("$someCustomOperation")
.withParameters(inParams)
.useHttpGet()
.execute();
// verify // verify
assertEquals("outputValue", ((StringType)outParams.getParameter().get(0).getValue()).getValueAsString()); assertEquals("outputValue", ((StringType)outParams.getParameter().get(0).getValue()).getValueAsString());
} }
@ -248,7 +254,7 @@ public class AbstractJaxRsResourceProviderDstu3Test {
/** */ /** */
@Test @Test
public void testSearchPost() { public void testSearchPost() {
when(mock.search(any(StringParam.class), Matchers.isNull(StringAndListParam.class))) when(mock.search(ArgumentMatchers.isNull(), ArgumentMatchers.isNull()))
.thenReturn(createPatients(1, 13)); .thenReturn(createPatients(1, 13));
org.hl7.fhir.dstu3.model.Bundle result = client.search().forResource("Patient").usingStyle(SearchStyleEnum.POST) org.hl7.fhir.dstu3.model.Bundle result = client.search().forResource("Patient").usingStyle(SearchStyleEnum.POST)
.returnBundle(org.hl7.fhir.dstu3.model.Bundle.class).execute(); .returnBundle(org.hl7.fhir.dstu3.model.Bundle.class).execute();
@ -275,12 +281,12 @@ public class AbstractJaxRsResourceProviderDstu3Test {
/** Search - Multi-valued Parameters (ANY/OR) */ /** Search - Multi-valued Parameters (ANY/OR) */
@Test @Test
public void testSearchUsingGenericClientBySearchWithMultiValues() { public void testSearchUsingGenericClientBySearchWithMultiValues() {
when(mock.search(any(StringParam.class), Matchers.isNotNull(StringAndListParam.class))) when(mock.search(any(StringParam.class), ArgumentMatchers.notNull()))
.thenReturn(Arrays.asList(createPatient(1))); .thenReturn(Arrays.asList(createPatient(1)));
final Bundle results = client.search().forResource(Patient.class) final Bundle results = client.search().forResource(Patient.class)
.where(Patient.ADDRESS.matches().values("Toronto")).and(Patient.ADDRESS.matches().values("Ontario")) .where(Patient.ADDRESS.matches().values("Toronto")).and(Patient.ADDRESS.matches().values("Ontario"))
.and(Patient.ADDRESS.matches().values("Canada")) .and(Patient.ADDRESS.matches().values("Canada"))
.where(Patient.IDENTIFIER.exactly().systemAndIdentifier("SHORTNAME", "TOYS")).returnBundle(Bundle.class).execute(); .where(Patient.NAME.matches().value("SHORTNAME")).returnBundle(Bundle.class).execute();
IBaseResource resource = results.getEntry().get(0).getResource(); IBaseResource resource = results.getEntry().get(0).getResource();
compareResultId(1, resource); compareResultId(1, resource);
@ -291,7 +297,7 @@ public class AbstractJaxRsResourceProviderDstu3Test {
@Test @Test
public void testSearchWithPaging() { public void testSearchWithPaging() {
// Perform a search // Perform a search
when(mock.search(any(StringParam.class), Matchers.isNull(StringAndListParam.class))) when(mock.search(ArgumentMatchers.isNull(), ArgumentMatchers.isNull()))
.thenReturn(createPatients(1, 13)); .thenReturn(createPatients(1, 13));
final org.hl7.fhir.dstu3.model.Bundle results = client.search().forResource(Patient.class).count(8).returnBundle(org.hl7.fhir.dstu3.model.Bundle.class) final org.hl7.fhir.dstu3.model.Bundle results = client.search().forResource(Patient.class).count(8).returnBundle(org.hl7.fhir.dstu3.model.Bundle.class)
.execute(); .execute();
@ -416,17 +422,17 @@ public class AbstractJaxRsResourceProviderDstu3Test {
System.out.println(ourPort); System.out.println(ourPort);
jettyServer = new Server(ourPort); jettyServer = new Server(ourPort);
jettyServer.setHandler(context); jettyServer.setHandler(context);
ServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*"); ServletHolder jerseyServlet = context.addServlet(org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.class, "/*");
jerseyServlet.setInitOrder(0); jerseyServlet.setInitOrder(0);
//@formatter:off //@formatter:off
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames", jerseyServlet.setInitParameter("resteasy.resources",
StringUtils.join(Arrays.asList( StringUtils.join(Arrays.asList(
TestJaxRsMockPatientRestProviderDstu3.class.getCanonicalName(), TestJaxRsMockPatientRestProviderDstu3.class.getCanonicalName(),
JaxRsExceptionInterceptor.class.getCanonicalName(), // JaxRsExceptionInterceptor.class.getCanonicalName(),
TestJaxRsConformanceRestProviderDstu3.class.getCanonicalName(), TestJaxRsConformanceRestProviderDstu3.class.getCanonicalName(),
TestJaxRsMockPageProviderDstu3.class.getCanonicalName() TestJaxRsMockPageProviderDstu3.class.getCanonicalName()
), ";")); ), ","));
//@formatter:on //@formatter:on
jettyServer.start(); jettyServer.start();
@ -441,7 +447,7 @@ public class AbstractJaxRsResourceProviderDstu3Test {
} }
@AfterClass @AfterClass
public static void tearDownClass() throws Exception { public static void tearDownClass() {
try { try {
jettyServer.destroy(); jettyServer.destroy();
} catch (Exception e) { } catch (Exception e) {

View File

@ -17,6 +17,7 @@ import org.junit.*;
import org.junit.Test; import org.junit.Test;
import org.junit.runners.MethodSorters; import org.junit.runners.MethodSorters;
import org.mockito.ArgumentCaptor; import org.mockito.ArgumentCaptor;
import org.mockito.ArgumentMatcher;
import org.mockito.Matchers; import org.mockito.Matchers;
import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.FhirContext;
@ -127,7 +128,7 @@ public class AbstractJaxRsResourceProviderTest {
@Test @Test
public void testConformance() { public void testConformance() {
final Conformance conf = client.fetchConformance().ofType(Conformance.class).execute(); final Conformance conf = client.fetchConformance().ofType(Conformance.class).execute();
assertEquals(conf.getRest().get(0).getResource().get(0).getType().toString(), "Patient"); assertEquals(conf.getRest().get(0).getResource().get(0).getType(), "Patient");
} }
@Test @Test
@ -154,7 +155,7 @@ public class AbstractJaxRsResourceProviderTest {
} }
@Test @Test
public void testConditionalDelete() throws Exception { public void testConditionalDelete() {
when(mock.delete(idCaptor.capture(), conditionalCaptor.capture())).thenReturn(new MethodOutcome()); when(mock.delete(idCaptor.capture(), conditionalCaptor.capture())).thenReturn(new MethodOutcome());
client.delete().resourceConditionalByType("Patient").where(Patient.IDENTIFIER.exactly().identifier("2")).execute(); client.delete().resourceConditionalByType("Patient").where(Patient.IDENTIFIER.exactly().identifier("2")).execute();
assertEquals("Patient?identifier=2&_format=json", conditionalCaptor.getValue()); assertEquals("Patient?identifier=2&_format=json", conditionalCaptor.getValue());
@ -226,9 +227,12 @@ public class AbstractJaxRsResourceProviderTest {
/** */ /** */
@Test @Test
public void testSearchPost() { public void testSearchPost() {
when(mock.search(any(StringParam.class), Matchers.isNull(StringAndListParam.class))) when(mock.search(isNull(), isNull()))
.thenReturn(createPatients(1, 13)); .thenReturn(createPatients(1, 13));
Bundle result = client.search().forResource("Patient").usingStyle(SearchStyleEnum.POST) Bundle result = client
.search()
.forResource("Patient")
.usingStyle(SearchStyleEnum.POST)
.returnBundle(Bundle.class).execute(); .returnBundle(Bundle.class).execute();
IResource resource = result.getEntry().get(0).getResource(); IResource resource = result.getEntry().get(0).getResource();
compareResultId(1, resource); compareResultId(1, resource);
@ -253,12 +257,12 @@ public class AbstractJaxRsResourceProviderTest {
/** Search - Multi-valued Parameters (ANY/OR) */ /** Search - Multi-valued Parameters (ANY/OR) */
@Test @Test
public void testSearchUsingGenericClientBySearchWithMultiValues() { public void testSearchUsingGenericClientBySearchWithMultiValues() {
when(mock.search(any(StringParam.class), Matchers.isNotNull(StringAndListParam.class))) when(mock.search(any(StringParam.class), any(StringAndListParam.class)))
.thenReturn(Arrays.asList(createPatient(1))); .thenReturn(Arrays.asList(createPatient(1)));
Bundle results = client.search().forResource(Patient.class) Bundle results = client.search().forResource(Patient.class)
.where(Patient.ADDRESS.matches().values("Toronto")).and(Patient.ADDRESS.matches().values("Ontario")) .where(Patient.ADDRESS.matches().values("Toronto")).and(Patient.ADDRESS.matches().values("Ontario"))
.and(Patient.ADDRESS.matches().values("Canada")) .and(Patient.ADDRESS.matches().values("Canada"))
.where(Patient.IDENTIFIER.exactly().systemAndIdentifier("SHORTNAME", "TOYS")).returnBundle(Bundle.class).execute(); .where(Patient.NAME.matches().value("SHORTNAME")).returnBundle(Bundle.class).execute();
IResource resource = results.getEntry().get(0).getResource(); IResource resource = results.getEntry().get(0).getResource();
compareResultId(1, resource); compareResultId(1, resource);
@ -269,7 +273,7 @@ public class AbstractJaxRsResourceProviderTest {
@Test @Test
public void testSearchWithPaging() { public void testSearchWithPaging() {
// Perform a search // Perform a search
when(mock.search(any(StringParam.class), Matchers.isNull(StringAndListParam.class))) when(mock.search(isNull(), isNull()))
.thenReturn(createPatients(1, 13)); .thenReturn(createPatients(1, 13));
final Bundle results = client.search().forResource(Patient.class).limitTo(8).returnBundle(Bundle.class) final Bundle results = client.search().forResource(Patient.class).limitTo(8).returnBundle(Bundle.class)
.execute(); .execute();
@ -370,24 +374,17 @@ public class AbstractJaxRsResourceProviderTest {
} }
private <T> T withId(final T id) { private <T> T withId(final T id) {
return argThat(new BaseMatcher<T>() { return argThat(other -> {
@Override IdDt thisId;
public void describeTo(Description arg0) { IdDt otherId;
} if (id instanceof IdDt) {
thisId = (IdDt) id;
@Override otherId = (IdDt) other;
public boolean matches(Object other) { } else {
IdDt thisId; thisId = ((IResource) id).getId();
IdDt otherId; otherId = ((IResource) other).getId();
if (id instanceof IdDt) {
thisId = (IdDt) id;
otherId = (IdDt) other;
} else {
thisId = ((IResource) id).getId();
otherId = ((IResource) other).getId();
}
return thisId.getIdPartAsLong().equals(otherId.getIdPartAsLong());
} }
return thisId.getIdPartAsLong().equals(otherId.getIdPartAsLong());
}); });
} }
@ -399,17 +396,16 @@ public class AbstractJaxRsResourceProviderTest {
System.out.println(ourPort); System.out.println(ourPort);
jettyServer = new Server(ourPort); jettyServer = new Server(ourPort);
jettyServer.setHandler(context); jettyServer.setHandler(context);
ServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*"); ServletHolder jerseyServlet = context.addServlet(org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.class, "/*");
jerseyServlet.setInitOrder(0); jerseyServlet.setInitOrder(0);
//@formatter:off //@formatter:off
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames", jerseyServlet.setInitParameter("resteasy.resources",
StringUtils.join(Arrays.asList( StringUtils.join(Arrays.asList(
TestJaxRsMockPatientRestProvider.class.getCanonicalName(), TestJaxRsMockPatientRestProvider.class.getCanonicalName(),
JaxRsExceptionInterceptor.class.getCanonicalName(),
TestJaxRsConformanceRestProvider.class.getCanonicalName(), TestJaxRsConformanceRestProvider.class.getCanonicalName(),
TestJaxRsMockPageProvider.class.getCanonicalName() TestJaxRsMockPageProvider.class.getCanonicalName()
), ";")); ), ","));
//@formatter:on //@formatter:on
jettyServer.start(); jettyServer.start();
@ -424,7 +420,7 @@ public class AbstractJaxRsResourceProviderTest {
} }
@AfterClass @AfterClass
public static void tearDownClass() throws Exception { public static void tearDownClass() {
try { try {
jettyServer.destroy(); jettyServer.destroy();
} catch (Exception e) { } catch (Exception e) {

View File

@ -1,34 +1,22 @@
package ca.uhn.fhir.jaxrs.server.util; package ca.uhn.fhir.jaxrs.server.util;
import static org.junit.Assert.assertEquals; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProviderDstu3;
import static org.junit.Assert.assertTrue; import ca.uhn.fhir.rest.api.RequestTypeEnum;
import static org.mockito.Mockito.doReturn; import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Arrays;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.glassfish.jersey.internal.MapPropertiesDelegate; import org.jboss.resteasy.specimpl.ResteasyHttpHeaders;
import org.glassfish.jersey.server.ContainerRequest;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProvider; import javax.ws.rs.core.MultivaluedHashMap;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProviderDstu3; import javax.ws.rs.core.MultivaluedMap;
import ca.uhn.fhir.jaxrs.server.util.JaxRsRequest; import javax.ws.rs.core.UriInfo;
import ca.uhn.fhir.jaxrs.server.util.JaxRsResponse; import java.io.IOException;
import ca.uhn.fhir.rest.api.RequestTypeEnum; import java.net.URISyntaxException;
import ca.uhn.fhir.rest.api.RestOperationTypeEnum; import java.util.Arrays;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
public class JaxRsRequestDstu3Test { public class JaxRsRequestDstu3Test {
@ -38,7 +26,7 @@ public class JaxRsRequestDstu3Test {
private JaxRsRequest details; private JaxRsRequest details;
private MultivaluedMap<String, String> queryParameters = new MultivaluedHashMap<String, String>(); private MultivaluedMap<String, String> queryParameters = new MultivaluedHashMap<String, String>();
private ContainerRequest headers; private ResteasyHttpHeaders headers;
private TestJaxRsDummyPatientProviderDstu3 provider; private TestJaxRsDummyPatientProviderDstu3 provider;
@Before @Before
@ -52,11 +40,11 @@ public class JaxRsRequestDstu3Test {
String headerValue = "location_value"; String headerValue = "location_value";
String headerValue2 = "location_value_2"; String headerValue2 = "location_value_2";
assertTrue(StringUtils.isBlank(details.getHeader(headerKey))); assertTrue(StringUtils.isBlank(details.getHeader(headerKey)));
headers.header(headerKey, headerValue); queryParameters.add(headerKey, headerValue);
assertEquals(headerValue, details.getHeader(headerKey)); assertEquals(headerValue, details.getHeader(headerKey));
assertEquals(Arrays.asList(headerValue), details.getHeaders(headerKey)); assertEquals(Arrays.asList(headerValue), details.getHeaders(headerKey));
headers.header(headerKey, headerValue2); queryParameters.add(headerKey, headerValue2);
assertEquals(headerValue, details.getHeader(headerKey)); assertEquals(headerValue, details.getHeader(headerKey));
assertEquals(Arrays.asList(headerValue, headerValue2), details.getHeaders(headerKey)); assertEquals(Arrays.asList(headerValue, headerValue2), details.getHeaders(headerKey));
} }
@ -98,9 +86,9 @@ public class JaxRsRequestDstu3Test {
assertEquals(this.provider, details.getServer()); assertEquals(this.provider, details.getServer());
} }
public JaxRsRequest createRequestDetails() throws URISyntaxException { public JaxRsRequest createRequestDetails() {
//headers // headers
headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null, new MapPropertiesDelegate()); headers = new ResteasyHttpHeaders(queryParameters);
//uri info //uri info
UriInfo uriInfo = mock(UriInfo.class); UriInfo uriInfo = mock(UriInfo.class);

View File

@ -1,31 +1,22 @@
package ca.uhn.fhir.jaxrs.server.util; package ca.uhn.fhir.jaxrs.server.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Arrays;
import javax.ws.rs.HttpMethod;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
import org.apache.commons.lang3.StringUtils;
import org.glassfish.jersey.internal.MapPropertiesDelegate;
import org.glassfish.jersey.server.ContainerRequest;
import org.junit.Before;
import org.junit.Test;
import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProvider; import ca.uhn.fhir.jaxrs.server.test.TestJaxRsDummyPatientProvider;
import ca.uhn.fhir.rest.api.RequestTypeEnum; import ca.uhn.fhir.rest.api.RequestTypeEnum;
import ca.uhn.fhir.rest.api.RestOperationTypeEnum; import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
import org.apache.commons.lang3.StringUtils;
import org.jboss.resteasy.specimpl.ResteasyHttpHeaders;
import org.junit.Before;
import org.junit.Test;
import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Arrays;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
public class JaxRsRequestTest { public class JaxRsRequestTest {
@ -35,7 +26,7 @@ public class JaxRsRequestTest {
private JaxRsRequest details; private JaxRsRequest details;
private MultivaluedMap<String, String> queryParameters = new MultivaluedHashMap<String, String>(); private MultivaluedMap<String, String> queryParameters = new MultivaluedHashMap<String, String>();
private ContainerRequest headers; private ResteasyHttpHeaders headers;
private TestJaxRsDummyPatientProvider provider; private TestJaxRsDummyPatientProvider provider;
@Before @Before
@ -49,11 +40,11 @@ public class JaxRsRequestTest {
String headerValue = "location_value"; String headerValue = "location_value";
String headerValue2 = "location_value_2"; String headerValue2 = "location_value_2";
assertTrue(StringUtils.isBlank(details.getHeader(headerKey))); assertTrue(StringUtils.isBlank(details.getHeader(headerKey)));
headers.header(headerKey, headerValue); queryParameters.add(headerKey, headerValue);
assertEquals(headerValue, details.getHeader(headerKey)); assertEquals(headerValue, details.getHeader(headerKey));
assertEquals(Arrays.asList(headerValue), details.getHeaders(headerKey)); assertEquals(Arrays.asList(headerValue), details.getHeaders(headerKey));
headers.header(headerKey, headerValue2); queryParameters.add(headerKey, headerValue2);
assertEquals(headerValue, details.getHeader(headerKey)); assertEquals(headerValue, details.getHeader(headerKey));
assertEquals(Arrays.asList(headerValue, headerValue2), details.getHeaders(headerKey)); assertEquals(Arrays.asList(headerValue, headerValue2), details.getHeaders(headerKey));
} }
@ -96,8 +87,10 @@ public class JaxRsRequestTest {
} }
public JaxRsRequest createRequestDetails() throws URISyntaxException { public JaxRsRequest createRequestDetails() throws URISyntaxException {
//headers // headers
headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null, new MapPropertiesDelegate()); // headers = new ContainerRequest(new URI(BASEURI), new URI(REQUESTURI), HttpMethod.GET, null,
// new MapPropertiesDelegate());
headers = new ResteasyHttpHeaders(queryParameters);
//uri info //uri info
UriInfo uriInfo = mock(UriInfo.class); UriInfo uriInfo = mock(UriInfo.class);

View File

@ -58,24 +58,12 @@
<version>${jetty_version}</version> <version>${jetty_version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.glassfish.jersey.core</groupId> <groupId>org.jboss.resteasy</groupId>
<artifactId>jersey-server</artifactId> <artifactId>resteasy-jaxrs</artifactId>
<version>${jersey_version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.glassfish.jersey.containers</groupId> <groupId>org.jboss.resteasy</groupId>
<artifactId>jersey-container-servlet-core</artifactId> <artifactId>resteasy-client</artifactId>
<version>${jersey_version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-jetty-http</artifactId>
<version>${jersey_version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
<version>${jersey_version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>ch.qos.logback</groupId> <groupId>ch.qos.logback</groupId>

View File

@ -43,15 +43,15 @@ public class JaxRsPatientProviderDstu3Test {
System.out.println(ourPort); System.out.println(ourPort);
jettyServer = new Server(ourPort); jettyServer = new Server(ourPort);
jettyServer.setHandler(context); jettyServer.setHandler(context);
ServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*"); ServletHolder jerseyServlet = context.addServlet(org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.class, "/*");
jerseyServlet.setInitOrder(0); jerseyServlet.setInitOrder(0);
//@formatter:off //@formatter:off
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames", jerseyServlet.setInitParameter("resteasy.resources",
StringUtils.join(Arrays.asList( StringUtils.join(Arrays.asList(
JaxRsConformanceProviderDstu3.class.getCanonicalName(), JaxRsConformanceProviderDstu3.class.getCanonicalName(),
JaxRsPatientRestProviderDstu3.class.getCanonicalName(), JaxRsPatientRestProviderDstu3.class.getCanonicalName(),
JaxRsPageProviderDstu3.class.getCanonicalName() JaxRsPageProviderDstu3.class.getCanonicalName()
), ";")); ), ","));
//@formatter:on //@formatter:on
jettyServer.start(); jettyServer.start();

View File

@ -47,15 +47,15 @@ public class JaxRsPatientProviderTest {
System.out.println(ourPort); System.out.println(ourPort);
jettyServer = new Server(ourPort); jettyServer = new Server(ourPort);
jettyServer.setHandler(context); jettyServer.setHandler(context);
ServletHolder jerseyServlet = context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*"); ServletHolder jerseyServlet = context.addServlet(org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.class, "/*");
jerseyServlet.setInitOrder(0); jerseyServlet.setInitOrder(0);
//@formatter:off //@formatter:off
jerseyServlet.setInitParameter("jersey.config.server.provider.classnames", jerseyServlet.setInitParameter("resteasy.resources",
StringUtils.join(Arrays.asList( StringUtils.join(Arrays.asList(
JaxRsConformanceProvider.class.getCanonicalName(), JaxRsConformanceProvider.class.getCanonicalName(),
JaxRsPatientRestProvider.class.getCanonicalName(), JaxRsPatientRestProvider.class.getCanonicalName(),
JaxRsPageProvider.class.getCanonicalName() JaxRsPageProvider.class.getCanonicalName()
), ";")); ), ","));
//@formatter:on //@formatter:on
jettyServer.start(); jettyServer.start();

View File

@ -210,7 +210,17 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!--
Dependencies that need to be added since JDK9
-->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
<!-- Test Database --> <!-- Test Database -->
<dependency> <dependency>

View File

@ -1,21 +1,31 @@
package ca.uhn.fhir.rest.server; package ca.uhn.fhir.rest.server;
import static org.hamcrest.Matchers.containsString; import ca.uhn.fhir.context.FhirContext;
import static org.hamcrest.Matchers.not; import ca.uhn.fhir.model.api.IResource;
import static org.hamcrest.Matchers.startsWith; import ca.uhn.fhir.model.dstu2.composite.IdentifierDt;
import static org.hamcrest.Matchers.stringContainsInOrder; import ca.uhn.fhir.model.dstu2.resource.Bundle;
import static org.junit.Assert.assertEquals; import ca.uhn.fhir.model.dstu2.resource.Bundle.Link;
import static org.junit.Assert.assertNull; import ca.uhn.fhir.model.dstu2.resource.Patient;
import static org.junit.Assert.assertThat; import ca.uhn.fhir.model.primitive.InstantDt;
import ca.uhn.fhir.rest.annotation.Create;
import java.util.*; import ca.uhn.fhir.rest.annotation.RequiredParam;
import java.util.concurrent.TimeUnit; import ca.uhn.fhir.rest.annotation.ResourceParam;
import ca.uhn.fhir.rest.annotation.Search;
import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.api.MethodOutcome;
import ca.uhn.fhir.rest.api.server.IBundleProvider;
import ca.uhn.fhir.rest.param.*;
import ca.uhn.fhir.util.PortUtil;
import ca.uhn.fhir.util.TestUtil;
import com.google.common.base.Charsets;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair; import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.*; import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity; import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
@ -26,21 +36,18 @@ import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHandler; import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.servlet.ServletHolder;
import org.hl7.fhir.instance.model.api.IBaseResource; import org.hl7.fhir.instance.model.api.IBaseResource;
import org.junit.*; import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import ca.uhn.fhir.context.FhirContext; import java.util.ArrayList;
import ca.uhn.fhir.model.api.IResource; import java.util.Collections;
import ca.uhn.fhir.model.dstu2.composite.IdentifierDt; import java.util.List;
import ca.uhn.fhir.model.dstu2.resource.Bundle; import java.util.concurrent.TimeUnit;
import ca.uhn.fhir.model.dstu2.resource.Bundle.Link;
import ca.uhn.fhir.model.dstu2.resource.Patient; import static org.hamcrest.Matchers.*;
import ca.uhn.fhir.model.primitive.InstantDt; import static org.junit.Assert.*;
import ca.uhn.fhir.rest.annotation.*;
import ca.uhn.fhir.rest.api.Constants;
import ca.uhn.fhir.rest.api.MethodOutcome;
import ca.uhn.fhir.rest.api.server.IBundleProvider;
import ca.uhn.fhir.rest.param.*;
import ca.uhn.fhir.util.*;
public class SearchDstu2Test { public class SearchDstu2Test {
@ -142,14 +149,14 @@ public class SearchDstu2Test {
ourLog.info(responseContent); ourLog.info(responseContent);
assertEquals(200, status.getStatusLine().getStatusCode()); assertEquals(200, status.getStatusLine().getStatusCode());
assertThat(responseContent, PatternMatcher.pattern("id value..[0-9a-f-]+\\\"")); assertThat(responseContent, matchesPattern("id value..[0-9a-f-]+\\\""));
} }
@Test @Test
public void testSearchBlacklist01Failing() throws Exception { public void testSearchBlacklist01Failing() throws Exception {
HttpGet httpGet = new HttpGet("http://localhost:" + ourPort + "/Patient?_query=searchBlacklist01&ref.black1=value"); HttpGet httpGet = new HttpGet("http://localhost:" + ourPort + "/Patient?_query=searchBlacklist01&ref.black1=value");
HttpResponse status = ourClient.execute(httpGet); HttpResponse status = ourClient.execute(httpGet);
String responseContent = IOUtils.toString(status.getEntity().getContent()); String responseContent = IOUtils.toString(status.getEntity().getContent(), Charsets.UTF_8);
IOUtils.closeQuietly(status.getEntity().getContent()); IOUtils.closeQuietly(status.getEntity().getContent());
ourLog.info(responseContent); ourLog.info(responseContent);
assertEquals(400, status.getStatusLine().getStatusCode()); assertEquals(400, status.getStatusLine().getStatusCode());
@ -159,7 +166,7 @@ public class SearchDstu2Test {
public void testSearchBlacklist01Passing() throws Exception { public void testSearchBlacklist01Passing() throws Exception {
HttpGet httpGet = new HttpGet("http://localhost:" + ourPort + "/Patient?_query=searchBlacklist01&ref.white1=value"); HttpGet httpGet = new HttpGet("http://localhost:" + ourPort + "/Patient?_query=searchBlacklist01&ref.white1=value");
HttpResponse status = ourClient.execute(httpGet); HttpResponse status = ourClient.execute(httpGet);
String responseContent = IOUtils.toString(status.getEntity().getContent()); String responseContent = IOUtils.toString(status.getEntity().getContent(), Charsets.UTF_8);
IOUtils.closeQuietly(status.getEntity().getContent()); IOUtils.closeQuietly(status.getEntity().getContent());
ourLog.info(responseContent); ourLog.info(responseContent);
assertEquals(200, status.getStatusLine().getStatusCode()); assertEquals(200, status.getStatusLine().getStatusCode());

View File

@ -1,68 +0,0 @@
package ca.uhn.fhir.util;
import java.util.regex.Pattern;
import org.hamcrest.Factory;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher;
/**
* Tests if the argument is a {@link CharSequence} that matches a regular expression.
*/
public class PatternMatcher extends TypeSafeMatcher<CharSequence> {
/**
* Creates a matcher that matches if the examined {@link CharSequence} matches the specified regular expression.
* <p/>
* For example:
*
* <pre>
* assertThat(&quot;myStringOfNote&quot;, pattern(&quot;[0-9]+&quot;))
* </pre>
*
* @param regex
* the regular expression that the returned matcher will use to match any examined {@link CharSequence}
*/
@Factory
public static Matcher<CharSequence> pattern(String regex) {
return pattern(Pattern.compile(regex));
}
/**
* Creates a matcher that matches if the examined {@link CharSequence} matches the specified {@link Pattern}.
* <p/>
* For example:
*
* <pre>
* assertThat(&quot;myStringOfNote&quot;, Pattern.compile(&quot;[0-9]+&quot;))
* </pre>
*
* @param pattern
* the pattern that the returned matcher will use to match any examined {@link CharSequence}
*/
@Factory
public static Matcher<CharSequence> pattern(Pattern pattern) {
return new PatternMatcher(pattern);
}
private final Pattern pattern;
public PatternMatcher(Pattern pattern) {
this.pattern = pattern;
}
@Override
public boolean matchesSafely(CharSequence item) {
return pattern.matcher(item).find();
}
@Override
public void describeMismatchSafely(CharSequence item, org.hamcrest.Description mismatchDescription) {
mismatchDescription.appendText("was \"").appendText(String.valueOf(item)).appendText("\"");
}
@Override
public void describeTo(org.hamcrest.Description description) {
description.appendText("a string with pattern \"").appendText(String.valueOf(pattern)).appendText("\"");
}
}

View File

@ -1,15 +1,11 @@
package ca.uhn.fhir.rest.server; package ca.uhn.fhir.rest.server;
import static org.hamcrest.Matchers.containsString; import ca.uhn.fhir.context.FhirContext;
import static org.hamcrest.Matchers.not; import ca.uhn.fhir.model.primitive.InstantDt;
import static org.hamcrest.Matchers.stringContainsInOrder; import ca.uhn.fhir.rest.annotation.Search;
import static org.junit.Assert.assertEquals; import ca.uhn.fhir.rest.api.Constants;
import static org.junit.Assert.assertNull; import ca.uhn.fhir.rest.api.server.IBundleProvider;
import static org.junit.Assert.assertThat; import ca.uhn.fhir.util.PortUtil;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpGet;
@ -22,15 +18,15 @@ import org.eclipse.jetty.servlet.ServletHolder;
import org.hl7.fhir.instance.model.Bundle; import org.hl7.fhir.instance.model.Bundle;
import org.hl7.fhir.instance.model.Patient; import org.hl7.fhir.instance.model.Patient;
import org.hl7.fhir.instance.model.api.IBaseResource; import org.hl7.fhir.instance.model.api.IBaseResource;
import org.junit.*; import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import ca.uhn.fhir.context.FhirContext; import java.util.List;
import ca.uhn.fhir.model.primitive.InstantDt; import java.util.concurrent.TimeUnit;
import ca.uhn.fhir.rest.annotation.Search;
import ca.uhn.fhir.rest.api.Constants; import static org.hamcrest.Matchers.*;
import ca.uhn.fhir.rest.api.server.IBundleProvider; import static org.junit.Assert.*;
import ca.uhn.fhir.util.PatternMatcherB;
import ca.uhn.fhir.util.PortUtil;
public class SearchHl7OrgDstu2Test { public class SearchHl7OrgDstu2Test {
@ -86,7 +82,7 @@ public class SearchHl7OrgDstu2Test {
ourLog.info(responseContent); ourLog.info(responseContent);
assertEquals(200, status.getStatusLine().getStatusCode()); assertEquals(200, status.getStatusLine().getStatusCode());
assertThat(responseContent, PatternMatcherB.pattern("id value..[0-9a-f-]+\\\"")); assertThat(responseContent, matchesPattern("id value..[0-9a-f-]+\\\""));
} }
@Test @Test

View File

@ -1,68 +0,0 @@
package ca.uhn.fhir.util;
import java.util.regex.Pattern;
import org.hamcrest.Factory;
import org.hamcrest.Matcher;
import org.hamcrest.TypeSafeMatcher;
/**
* Tests if the argument is a {@link CharSequence} that matches a regular expression.
*/
public class PatternMatcherB extends TypeSafeMatcher<CharSequence> {
/**
* Creates a matcher that matches if the examined {@link CharSequence} matches the specified regular expression.
* <p/>
* For example:
*
* <pre>
* assertThat(&quot;myStringOfNote&quot;, pattern(&quot;[0-9]+&quot;))
* </pre>
*
* @param regex
* the regular expression that the returned matcher will use to match any examined {@link CharSequence}
*/
@Factory
public static Matcher<CharSequence> pattern(String regex) {
return pattern(Pattern.compile(regex));
}
/**
* Creates a matcher that matches if the examined {@link CharSequence} matches the specified {@link Pattern}.
* <p/>
* For example:
*
* <pre>
* assertThat(&quot;myStringOfNote&quot;, Pattern.compile(&quot;[0-9]+&quot;))
* </pre>
*
* @param pattern
* the pattern that the returned matcher will use to match any examined {@link CharSequence}
*/
@Factory
public static Matcher<CharSequence> pattern(Pattern pattern) {
return new PatternMatcherB(pattern);
}
private final Pattern pattern;
public PatternMatcherB(Pattern pattern) {
this.pattern = pattern;
}
@Override
public boolean matchesSafely(CharSequence item) {
return pattern.matcher(item).find();
}
@Override
public void describeMismatchSafely(CharSequence item, org.hamcrest.Description mismatchDescription) {
mismatchDescription.appendText("was \"").appendText(String.valueOf(item)).appendText("\"");
}
@Override
public void describeTo(org.hamcrest.Description description) {
description.appendText("a string with pattern \"").appendText(String.valueOf(pattern)).appendText("\"");
}
}

View File

@ -1,24 +1,5 @@
package ca.uhn.fhir.rest.client; package ca.uhn.fhir.rest.client;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.net.URL;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.hl7.fhir.r4.model.IdType;
import org.hl7.fhir.r4.model.Patient;
import org.junit.*;
import org.mockito.ArgumentMatcher;
import org.slf4j.LoggerFactory;
import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.rest.annotation.IdParam; import ca.uhn.fhir.rest.annotation.IdParam;
import ca.uhn.fhir.rest.annotation.Read; import ca.uhn.fhir.rest.annotation.Read;
@ -35,6 +16,20 @@ import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.LoggingEvent; import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.Appender; import ch.qos.logback.core.Appender;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.hl7.fhir.r4.model.IdType;
import org.hl7.fhir.r4.model.Patient;
import org.junit.*;
import org.mockito.ArgumentMatcher;
import org.slf4j.LoggerFactory;
import java.net.URL;
import static org.junit.Assert.*;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.*;
public class LoggingInterceptorTest { public class LoggingInterceptorTest {
@ -78,8 +73,8 @@ public class LoggingInterceptorTest {
verify(myMockAppender, times(2)).doAppend(argThat(new ArgumentMatcher<ILoggingEvent>() { verify(myMockAppender, times(2)).doAppend(argThat(new ArgumentMatcher<ILoggingEvent>() {
@Override @Override
public boolean matches(final Object argument) { public boolean matches(final ILoggingEvent argument) {
String formattedMessage = ((LoggingEvent) argument).getFormattedMessage(); String formattedMessage = argument.getFormattedMessage();
System.out.flush(); System.out.flush();
System.out.println("** Got Message: " + formattedMessage); System.out.println("** Got Message: " + formattedMessage);
System.out.flush(); System.out.flush();
@ -103,8 +98,8 @@ public class LoggingInterceptorTest {
verify(myMockAppender, times(1)).doAppend(argThat(new ArgumentMatcher<ILoggingEvent>() { verify(myMockAppender, times(1)).doAppend(argThat(new ArgumentMatcher<ILoggingEvent>() {
@Override @Override
public boolean matches(final Object argument) { public boolean matches(final ILoggingEvent argument) {
String formattedMessage = ((LoggingEvent) argument).getFormattedMessage(); String formattedMessage = argument.getFormattedMessage();
System.out.println("Verifying: " + formattedMessage); System.out.println("Verifying: " + formattedMessage);
return formattedMessage.replace("; ", ";").toLowerCase().contains("Content-Type: application/fhir+xml;charset=utf-8".toLowerCase()); return formattedMessage.replace("; ", ";").toLowerCase().contains("Content-Type: application/fhir+xml;charset=utf-8".toLowerCase());
} }
@ -118,8 +113,8 @@ public class LoggingInterceptorTest {
verify(myMockAppender, times(1)).doAppend(argThat(new ArgumentMatcher<ILoggingEvent>() { verify(myMockAppender, times(1)).doAppend(argThat(new ArgumentMatcher<ILoggingEvent>() {
@Override @Override
public boolean matches(final Object argument) { public boolean matches(final ILoggingEvent argument) {
String formattedMessage = ((LoggingEvent) argument).getFormattedMessage(); String formattedMessage = argument.getFormattedMessage();
System.out.println("Verifying: " + formattedMessage); System.out.println("Verifying: " + formattedMessage);
return formattedMessage.replace("; ", ";").toLowerCase().contains("Content-Type: application/fhir+xml;charset=utf-8".toLowerCase()); return formattedMessage.replace("; ", ";").toLowerCase().contains("Content-Type: application/fhir+xml;charset=utf-8".toLowerCase());
} }

29
pom.xml
View File

@ -79,7 +79,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.mockito</groupId> <groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId> <artifactId>mockito-core</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
@ -442,7 +442,7 @@
<commons_lang3_version>3.6</commons_lang3_version> <commons_lang3_version>3.6</commons_lang3_version>
<derby_version>10.14.1.0</derby_version> <derby_version>10.14.1.0</derby_version>
<error_prone_annotations_version>2.0.18</error_prone_annotations_version> <error_prone_annotations_version>2.0.18</error_prone_annotations_version>
<guava_version>23.0</guava_version> <guava_version>25.0-jre</guava_version>
<gson_version>2.8.1</gson_version> <gson_version>2.8.1</gson_version>
<jaxb_api_version>2.3.0</jaxb_api_version> <jaxb_api_version>2.3.0</jaxb_api_version>
<jaxb_core_version>2.3.0</jaxb_core_version> <jaxb_core_version>2.3.0</jaxb_core_version>
@ -461,6 +461,7 @@
<maven_license_plugin_version>1.8</maven_license_plugin_version> <maven_license_plugin_version>1.8</maven_license_plugin_version>
<phloc_schematron_version>2.7.1</phloc_schematron_version> <phloc_schematron_version>2.7.1</phloc_schematron_version>
<phloc_commons_version>4.4.11</phloc_commons_version> <phloc_commons_version>4.4.11</phloc_commons_version>
<resteasy_version>4.0.0.Beta3</resteasy_version>
<servicemix_saxon_version>9.5.1-5_1</servicemix_saxon_version> <servicemix_saxon_version>9.5.1-5_1</servicemix_saxon_version>
<servicemix_xmlresolver_version>1.2_5</servicemix_xmlresolver_version> <servicemix_xmlresolver_version>1.2_5</servicemix_xmlresolver_version>
<spring_version>5.0.3.RELEASE</spring_version> <spring_version>5.0.3.RELEASE</spring_version>
@ -620,6 +621,11 @@
<artifactId>txtmark</artifactId> <artifactId>txtmark</artifactId>
<version>0.16</version> <version>0.16</version>
</dependency> </dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
<dependency> <dependency>
<groupId>javax.ejb</groupId> <groupId>javax.ejb</groupId>
<artifactId>ejb-api</artifactId> <artifactId>ejb-api</artifactId>
@ -944,7 +950,7 @@
<artifactId>javax.json</artifactId> <artifactId>javax.json</artifactId>
<version>1.0.4</version> <version>1.0.4</version>
</dependency> </dependency>
<dependency> <!--<dependency>
<groupId>org.glassfish.jersey.core</groupId> <groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId> <artifactId>jersey-server</artifactId>
<version>${jersey_version}</version> <version>${jersey_version}</version>
@ -963,6 +969,16 @@
<groupId>org.glassfish.jersey.media</groupId> <groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId> <artifactId>jersey-media-moxy</artifactId>
<version>${jersey_version}</version> <version>${jersey_version}</version>
</dependency>-->
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>${resteasy_version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>${resteasy_version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jscience</groupId> <groupId>org.jscience</groupId>
@ -1011,8 +1027,8 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.mockito</groupId> <groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId> <artifactId>mockito-core</artifactId>
<version>1.10.19</version> <version>2.18.3</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
@ -1270,7 +1286,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId> <artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version> <version>2.21.0</version>
<configuration> <configuration>
<redirectTestOutputToFile>true</redirectTestOutputToFile> <redirectTestOutputToFile>true</redirectTestOutputToFile>
<runOrder>random</runOrder> <runOrder>random</runOrder>
@ -1501,6 +1517,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId> <artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions> <executions>
<execution> <execution>
<id>enforce-java</id> <id>enforce-java</id>