merge master
This commit is contained in:
@@ -15,7 +15,7 @@ import org.springframework.boot.test.context.SpringBootTest;
|
||||
"hapi.fhir.subscription.websocket_enabled=false",
|
||||
"spring.main.allow-bean-definition-overriding=true"
|
||||
})
|
||||
public class CustomBeanTest {
|
||||
class CustomBeanTest {
|
||||
|
||||
@Autowired
|
||||
some.custom.pkg1.CustomBean customBean1;
|
||||
|
||||
@@ -22,7 +22,7 @@ import ca.uhn.fhir.rest.client.api.ServerValidationModeEnum;
|
||||
"hapi.fhir.fhir_version=r4"
|
||||
})
|
||||
|
||||
public class CustomInterceptorTest {
|
||||
class CustomInterceptorTest {
|
||||
|
||||
@LocalServerPort
|
||||
private int port;
|
||||
|
||||
@@ -3,16 +3,23 @@ package ca.uhn.fhir.jpa.starter;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import ca.uhn.fhir.context.FhirContext;
|
||||
import ca.uhn.fhir.jpa.search.lastn.ElasticsearchRestClientFactory;
|
||||
import ca.uhn.fhir.jpa.search.lastn.ElasticsearchSvcImpl;
|
||||
import ca.uhn.fhir.jpa.test.config.TestElasticsearchContainerHelper;
|
||||
import ca.uhn.fhir.rest.client.api.IGenericClient;
|
||||
import ca.uhn.fhir.rest.client.api.ServerValidationModeEnum;
|
||||
import ca.uhn.fhir.rest.client.interceptor.LoggingInterceptor;
|
||||
import java.io.IOException;
|
||||
import java.time.Duration;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.List;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
import org.elasticsearch.client.RequestOptions;
|
||||
import org.elasticsearch.client.RestHighLevelClient;
|
||||
import org.elasticsearch.client.indices.PutIndexTemplateRequest;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.hl7.fhir.instance.model.api.IIdType;
|
||||
import org.hl7.fhir.r4.model.Bundle;
|
||||
import org.hl7.fhir.r4.model.DateTimeType;
|
||||
@@ -34,8 +41,11 @@ import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import org.testcontainers.elasticsearch.ElasticsearchContainer;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@Testcontainers
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class, JpaStarterWebsocketDispatcherConfig.class}, properties =
|
||||
{
|
||||
"spring.datasource.url=jdbc:h2:mem:dbr4",
|
||||
@@ -43,6 +53,7 @@ import org.testcontainers.elasticsearch.ElasticsearchContainer;
|
||||
"hapi.fhir.lastn_enabled=true",
|
||||
"hapi.fhir.store_resource_in_lucene_index_enabled=true",
|
||||
"hapi.fhir.advanced_lucene_indexing=true",
|
||||
|
||||
"elasticsearch.enabled=true",
|
||||
"hapi.fhir.cr_enabled=false",
|
||||
// Because the port is set randomly, we will set the rest_url using the Initializer.
|
||||
@@ -62,19 +73,31 @@ public class ElasticsearchLastNR4IT {
|
||||
private IGenericClient ourClient;
|
||||
private FhirContext ourCtx;
|
||||
|
||||
private static final String ELASTIC_VERSION = "7.16.3";
|
||||
private static final String ELASTIC_IMAGE = "docker.elastic.co/elasticsearch/elasticsearch:" + ELASTIC_VERSION;
|
||||
private static ElasticsearchContainer embeddedElastic;
|
||||
@Container
|
||||
public static ElasticsearchContainer embeddedElastic = TestElasticsearchContainerHelper.getEmbeddedElasticSearch();
|
||||
|
||||
@Autowired
|
||||
private ElasticsearchSvcImpl myElasticsearchSvc;
|
||||
|
||||
@BeforeAll
|
||||
public static void beforeClass() {
|
||||
embeddedElastic = new ElasticsearchContainer(ELASTIC_IMAGE).withStartupTimeout(Duration.of(300, ChronoUnit.SECONDS));
|
||||
embeddedElastic.start();
|
||||
public static void beforeClass() throws IOException {
|
||||
//Given
|
||||
RestHighLevelClient elasticsearchHighLevelRestClient = ElasticsearchRestClientFactory.createElasticsearchHighLevelRestClient(
|
||||
"http", embeddedElastic.getHost() + ":" + embeddedElastic.getMappedPort(9200), "", "");
|
||||
|
||||
/* As of 2023-08-10, HAPI FHIR sets SubscriptionConstants.MAX_SUBSCRIPTION_RESULTS to 50000
|
||||
which is in excess of elastic's default max_result_window. If MAX_SUBSCRIPTION_RESULTS is changed
|
||||
to a value <= 10000, the following will no longer be necessary. - dotasek
|
||||
*/
|
||||
PutIndexTemplateRequest putIndexTemplateRequest = new PutIndexTemplateRequest("hapi_fhir_template");
|
||||
putIndexTemplateRequest.patterns(List.of("*"));
|
||||
Settings settings = Settings.builder().put("index.max_result_window", 50000).build();
|
||||
putIndexTemplateRequest.settings(settings);
|
||||
elasticsearchHighLevelRestClient.indices().putTemplate(putIndexTemplateRequest, RequestOptions.DEFAULT);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@PreDestroy
|
||||
public void stop() {
|
||||
embeddedElastic.stop();
|
||||
@@ -116,7 +139,7 @@ public class ElasticsearchLastNR4IT {
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
void beforeEach() throws IOException {
|
||||
|
||||
ourCtx = FhirContext.forR4();
|
||||
ourCtx.getRestfulClientFactory().setServerValidationMode(ServerValidationModeEnum.NEVER);
|
||||
@@ -124,6 +147,7 @@ public class ElasticsearchLastNR4IT {
|
||||
String ourServerBase = "http://localhost:" + port + "/fhir/";
|
||||
ourClient = ourCtx.newRestfulGenericClient(ourServerBase);
|
||||
ourClient.registerInterceptor(new LoggingInterceptor(true));
|
||||
|
||||
}
|
||||
|
||||
static class Initializer
|
||||
|
||||
@@ -23,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
"spring.datasource.url=jdbc:h2:mem:dbr2",
|
||||
"hapi.fhir.cr_enabled=false",
|
||||
})
|
||||
public class ExampleServerDstu2IT {
|
||||
class ExampleServerDstu2IT {
|
||||
|
||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ExampleServerDstu2IT.class);
|
||||
private IGenericClient ourClient;
|
||||
|
||||
@@ -51,7 +51,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
})
|
||||
|
||||
|
||||
public class ExampleServerDstu3IT implements IServerSupport {
|
||||
class ExampleServerDstu3IT implements IServerSupport {
|
||||
|
||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ExampleServerDstu3IT.class);
|
||||
private IGenericClient ourClient;
|
||||
@@ -73,8 +73,8 @@ public class ExampleServerDstu3IT implements IServerSupport {
|
||||
ourClient.registerInterceptor(new LoggingInterceptor(true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateAndRead() {
|
||||
@Test
|
||||
void testCreateAndRead() {
|
||||
|
||||
String methodName = "testCreateResourceConditional";
|
||||
|
||||
@@ -157,7 +157,7 @@ public class ExampleServerDstu3IT implements IServerSupport {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWebsocketSubscription() throws Exception {
|
||||
void testWebsocketSubscription() throws Exception {
|
||||
/*
|
||||
* Create subscription
|
||||
*/
|
||||
|
||||
@@ -55,7 +55,7 @@ class ExampleServerR4BIT {
|
||||
|
||||
|
||||
@Test
|
||||
public void testBatchPutWithIdenticalTags() {
|
||||
void testBatchPutWithIdenticalTags() {
|
||||
String batchPuts = "{\n" +
|
||||
"\t\"resourceType\": \"Bundle\",\n" +
|
||||
"\t\"id\": \"patients\",\n" +
|
||||
|
||||
@@ -2,6 +2,7 @@ package ca.uhn.fhir.jpa.starter;
|
||||
|
||||
import ca.uhn.fhir.context.FhirContext;
|
||||
import ca.uhn.fhir.model.primitive.IdDt;
|
||||
import ca.uhn.fhir.jpa.searchparam.config.NicknameServiceConfig;
|
||||
import ca.uhn.fhir.rest.api.CacheControlDirective;
|
||||
import ca.uhn.fhir.rest.api.EncodingEnum;
|
||||
import ca.uhn.fhir.rest.api.MethodOutcome;
|
||||
@@ -16,11 +17,9 @@ import org.hl7.fhir.instance.model.api.IIdType;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Order;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.web.server.LocalServerPort;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -37,10 +36,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.opencds.cqf.fhir.utility.r4.Parameters.parameters;
|
||||
import static org.opencds.cqf.fhir.utility.r4.Parameters.stringPart;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
|
||||
classes = {Application.class, JpaStarterWebsocketDispatcherConfig.class},
|
||||
properties = {
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = {Application.class, JpaStarterWebsocketDispatcherConfig.class, NicknameServiceConfig.class}, properties = {
|
||||
"spring.datasource.url=jdbc:h2:mem:dbr4",
|
||||
"hapi.fhir.enable_repository_validating_interceptor=true",
|
||||
"hapi.fhir.fhir_version=r4",
|
||||
@@ -147,7 +143,7 @@ class ExampleServerR4IT implements IServerSupport{
|
||||
return result.get(0);
|
||||
}
|
||||
@Test
|
||||
public void testBatchPutWithIdenticalTags() {
|
||||
void testBatchPutWithIdenticalTags() {
|
||||
String batchPuts = "{\n" +
|
||||
"\t\"resourceType\": \"Bundle\",\n" +
|
||||
"\t\"id\": \"patients\",\n" +
|
||||
|
||||
@@ -45,15 +45,15 @@ public class ExampleServerR5IT {
|
||||
private IGenericClient ourClient;
|
||||
private FhirContext ourCtx;
|
||||
|
||||
public static final String SUBSCRIPTION_TOPIC_TEST_URL = "http://example.com/topic/test";
|
||||
public static final String SUBSCRIPTION_TOPIC_TEST_URL = "http://example.com/topic/test";
|
||||
|
||||
|
||||
@LocalServerPort
|
||||
@LocalServerPort
|
||||
private int port;
|
||||
|
||||
|
||||
@Test
|
||||
public void testCreateAndRead() {
|
||||
void testCreateAndRead() {
|
||||
|
||||
String methodName = "testCreateResourceConditional";
|
||||
|
||||
@@ -66,7 +66,7 @@ public class ExampleServerR5IT {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWebsocketSubscription() throws Exception {
|
||||
void testWebsocketSubscription() throws Exception {
|
||||
String endpoint = "ws://localhost:" + port + "/websocket";
|
||||
/*
|
||||
* Create topic
|
||||
|
||||
@@ -27,7 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
"hapi.fhir.partitioning.partitioning_include_in_search_hashes=false",
|
||||
|
||||
})
|
||||
public class MultitenantServerR4IT {
|
||||
class MultitenantServerR4IT {
|
||||
|
||||
|
||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ExampleServerDstu2IT.class);
|
||||
@@ -41,7 +41,7 @@ public class MultitenantServerR4IT {
|
||||
|
||||
|
||||
@Test
|
||||
public void testCreateAndReadInTenantA() {
|
||||
void testCreateAndReadInTenantA() {
|
||||
|
||||
|
||||
// Create tenant A
|
||||
@@ -67,7 +67,7 @@ public class MultitenantServerR4IT {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateAndReadInTenantB() {
|
||||
void testCreateAndReadInTenantB() {
|
||||
|
||||
|
||||
// Create tenant A
|
||||
|
||||
@@ -18,7 +18,7 @@ public class SocketImplementation {
|
||||
private final String myCriteria;
|
||||
protected String myError;
|
||||
protected boolean myGotBound;
|
||||
private final List<String> myMessages = new ArrayList<String>();
|
||||
private final List<String> myMessages = new ArrayList<>();
|
||||
protected int myPingCount;
|
||||
protected String mySubsId;
|
||||
private Session session;
|
||||
|
||||
Reference in New Issue
Block a user