use of com.walmartlabs.concord.runtime.v2.model.Location in project openmrs-module-fhir2 by openmrs.
the class LocationFhirResourceProviderIntegrationTest method shouldReturnBadRequestWhenDocumentIdDoesNotMatchLocationIdAsJson.
@Test
public void shouldReturnBadRequestWhenDocumentIdDoesNotMatchLocationIdAsJson() throws Exception {
// get the existing record
MockHttpServletResponse response = get("/Location/" + LOCATION_UUID).accept(FhirMediaTypes.JSON).go();
Location location = readResponse(response);
// update the existing record
location.setId(UNKNOWN_LOCATION_UUID);
// send the update to the server
response = put("/Location/" + LOCATION_UUID).jsonContent(toJson(location)).accept(FhirMediaTypes.JSON).go();
assertThat(response, isBadRequest());
assertThat(response.getContentType(), is(FhirMediaTypes.JSON.toString()));
assertThat(response.getContentAsString(), notNullValue());
OperationOutcome operationOutcome = readOperationOutcome(response);
assertThat(operationOutcome, notNullValue());
assertThat(operationOutcome.hasIssue(), is(true));
}
use of com.walmartlabs.concord.runtime.v2.model.Location in project openmrs-module-fhir2 by openmrs.
the class LocationFhirResourceProviderIntegrationTest method shouldSearchForExistingLocationsAsXML.
@Test
public void shouldSearchForExistingLocationsAsXML() throws Exception {
MockHttpServletResponse response = get("/Location").accept(FhirMediaTypes.XML).go();
assertThat(response, isOk());
assertThat(response.getContentType(), is(FhirMediaTypes.XML.toString()));
assertThat(response.getContentAsString(), notNullValue());
Bundle results = readBundleResponse(response);
assertThat(results, notNullValue());
assertThat(results.getType(), equalTo(Bundle.BundleType.SEARCHSET));
assertThat(results.hasEntry(), is(true));
List<Bundle.BundleEntryComponent> entries = results.getEntry();
assertThat(entries, everyItem(hasProperty("fullUrl", startsWith("http://localhost/ws/fhir2/R3/Location/"))));
assertThat(entries, everyItem(hasResource(instanceOf(Location.class))));
assertThat(entries, everyItem(hasResource(validResource())));
response = get("/Location?address-city=Kerio&partof=" + PARENT_LOCATION_UUID + "&_sort=name").accept(FhirMediaTypes.XML).go();
assertThat(response, isOk());
assertThat(response.getContentType(), is(FhirMediaTypes.XML.toString()));
assertThat(response.getContentAsString(), notNullValue());
results = readBundleResponse(response);
assertThat(results, notNullValue());
assertThat(results.getType(), equalTo(Bundle.BundleType.SEARCHSET));
assertThat(results.hasEntry(), is(true));
entries = results.getEntry();
assertThat(entries, everyItem(hasResource(hasProperty("address", hasProperty("city", equalTo("Kerio"))))));
assertThat(entries, everyItem(hasResource(hasProperty("partOf", hasProperty("referenceElement", hasProperty("idPart", equalTo(PARENT_LOCATION_UUID)))))));
assertThat(entries, containsInRelativeOrder(hasResource(hasProperty("name", equalTo("Test location 6"))), hasResource(hasProperty("name", equalTo("Test location 8")))));
assertThat(entries, everyItem(hasResource(validResource())));
}
use of com.walmartlabs.concord.runtime.v2.model.Location in project openmrs-module-fhir2 by openmrs.
the class LocationFhirResourceProviderIntegrationTest method shouldReturnNotFoundWhenUpdatingNonExistentLocationAsXML.
@Test
public void shouldReturnNotFoundWhenUpdatingNonExistentLocationAsXML() throws Exception {
// get the existing record
MockHttpServletResponse response = get("/Location/" + LOCATION_UUID).accept(FhirMediaTypes.XML).go();
Location location = readResponse(response);
// update the existing record
location.setId(UNKNOWN_LOCATION_UUID);
// send the update to the server
response = put("/Location/" + UNKNOWN_LOCATION_UUID).xmlContent(toXML(location)).accept(FhirMediaTypes.XML).go();
assertThat(response, isNotFound());
assertThat(response.getContentType(), is(FhirMediaTypes.XML.toString()));
assertThat(response.getContentAsString(), notNullValue());
OperationOutcome operationOutcome = readOperationOutcome(response);
assertThat(operationOutcome, notNullValue());
assertThat(operationOutcome.hasIssue(), is(true));
}
use of com.walmartlabs.concord.runtime.v2.model.Location in project openmrs-module-fhir2 by openmrs.
the class LocationFhirResourceProviderIntegrationTest method shouldCreateNewLocationWithExistingTagAsJson.
@Test
public void shouldCreateNewLocationWithExistingTagAsJson() throws Exception {
// Create Location Tag Before Posting LOcation
LocationTag tag = new LocationTag("mCSD_Location", "mCSD_Location");
locationService.saveLocationTag(tag);
// read JSON record
String jsonLocation;
try (InputStream is = this.getClass().getClassLoader().getResourceAsStream(JSON_CREATE_LOCATION_DOCUMENT)) {
Objects.requireNonNull(is);
jsonLocation = IOUtils.toString(is, StandardCharsets.UTF_8);
}
// create location
MockHttpServletResponse response = post("/Location").accept(FhirMediaTypes.JSON).jsonContent(jsonLocation).go();
// verify created correctly
assertThat(response, isCreated());
assertThat(response.getContentType(), is(FhirMediaTypes.JSON.toString()));
assertThat(response.getContentAsString(), notNullValue());
Location location = readResponse(response);
assertThat(location, notNullValue());
assertThat(location.getName(), equalTo("Test location"));
assertThat(location.getAddress().getCity(), equalTo("kampala"));
assertThat(location.getAddress().getCountry(), equalTo("uganda"));
assertThat(location.getAddress().getState(), equalTo("MI"));
assertThat(location.getAddress().getPostalCode(), equalTo("9105 PZ"));
assertThat(location.getMeta().getTagFirstRep().getCode(), equalTo("mCSD_Location"));
assertThat(location.getMeta().getTagFirstRep().getDisplay(), equalTo("mCSD_Location"));
assertThat(location, validResource());
// try to get new location
response = get("/Location/" + location.getIdElement().getIdPart()).accept(FhirMediaTypes.JSON).go();
assertThat(response, isOk());
Location newLocation = readResponse(response);
assertThat(newLocation.getId(), equalTo(location.getId()));
}
use of com.walmartlabs.concord.runtime.v2.model.Location in project openmrs-module-fhir2 by openmrs.
the class LocationFhirResourceProviderIntegrationTest method shouldUpdateExistingLocationAsXML.
@Test
public void shouldUpdateExistingLocationAsXML() throws Exception {
// get the existing record
MockHttpServletResponse response = get("/Location/" + LOCATION_UUID).accept(FhirMediaTypes.XML).go();
Location location = readResponse(response);
// update the existing record
location.getAddress().setCountry("France");
// send the update to the server
response = put("/Location/" + LOCATION_UUID).xmlContent(toXML(location)).accept(FhirMediaTypes.XML).go();
assertThat(response, isOk());
assertThat(response.getContentType(), is(FhirMediaTypes.XML.toString()));
assertThat(response.getContentAsString(), notNullValue());
// read the updated record
Location updatedLocation = readResponse(response);
assertThat(updatedLocation, notNullValue());
assertThat(updatedLocation.getIdElement().getIdPart(), equalTo(LOCATION_UUID));
assertThat(updatedLocation.getAddress().getCountry(), equalTo("France"));
assertThat(updatedLocation, validResource());
// double-check the record returned via get
response = get("/Location/" + LOCATION_UUID).accept(FhirMediaTypes.XML).go();
Location reReadLocation = readResponse(response);
assertThat(reReadLocation.getAddress().getCountry(), equalTo("France"));
}
Aggregations