fhir: move to test-infra
diff --git a/fhir/pom.xml b/fhir/pom.xml
index 9045973..4fbf3ca 100644
--- a/fhir/pom.xml
+++ b/fhir/pom.xml
@@ -111,10 +111,13 @@
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
+ <!-- test infra -->
<dependency>
- <groupId>org.testcontainers</groupId>
- <artifactId>testcontainers</artifactId>
- <version>${testcontainers-version}</version>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-test-infra-fhir</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
</dependency>
</dependencies>
diff --git a/fhir/src/main/java/sample/camel/MyCamelRouter.java b/fhir/src/main/java/sample/camel/MyCamelRouter.java
index 4d0efbd..35af825 100644
--- a/fhir/src/main/java/sample/camel/MyCamelRouter.java
+++ b/fhir/src/main/java/sample/camel/MyCamelRouter.java
@@ -22,7 +22,7 @@
import org.apache.camel.LoggingLevel;
import org.apache.camel.builder.RouteBuilder;
import org.apache.http.ProtocolException;
-import org.hl7.fhir.dstu3.model.Patient;
+import org.hl7.fhir.r4.model.Patient;
import org.springframework.stereotype.Component;
/**
diff --git a/fhir/src/main/resources/application.properties b/fhir/src/main/resources/application.properties
index e008cad..e318c57 100644
--- a/fhir/src/main/resources/application.properties
+++ b/fhir/src/main/resources/application.properties
@@ -15,9 +15,9 @@
## limitations under the License.
## ---------------------------------------------------------------------------
-serverUrl=http://localhost:8081/hapi-fhir-jpaserver/fhir
+serverUrl=http://localhost:8081/fhir
-fhirVersion=DSTU3
+fhirVersion=R4
input=target/work/fhir/input
diff --git a/fhir/src/test/java/sample/camel/MyCamelApplicationTest.java b/fhir/src/test/java/sample/camel/MyCamelApplicationTest.java
index 0eeafca..ae63fde 100644
--- a/fhir/src/test/java/sample/camel/MyCamelApplicationTest.java
+++ b/fhir/src/test/java/sample/camel/MyCamelApplicationTest.java
@@ -16,41 +16,32 @@
*/
package sample.camel;
+import java.io.File;
+import java.util.concurrent.TimeUnit;
+
import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.spring.boot.CamelContextConfiguration;
+import org.apache.camel.test.infra.fhir.services.FhirService;
+import org.apache.camel.test.infra.fhir.services.FhirServiceFactory;
import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
import org.apache.commons.io.FileUtils;
-
+import org.hl7.fhir.r4.model.Patient;
import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
-
-import org.hl7.fhir.dstu3.model.Patient;
+import org.junit.jupiter.api.extension.RegisterExtension;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.containers.wait.strategy.Wait;
-
-import com.github.dockerjava.api.command.CreateContainerCmd;
-import com.github.dockerjava.api.model.ExposedPort;
-import com.github.dockerjava.api.model.PortBinding;
-import com.github.dockerjava.api.model.Ports;
-
-import java.io.File;
-import java.util.concurrent.TimeUnit;
-import java.util.function.Consumer;
+import org.springframework.context.annotation.Bean;
@CamelSpringBootTest
-@SpringBootTest(classes = MyCamelApplication.class,
+@SpringBootTest(classes = {MyCamelApplication.class, MyCamelApplicationTest.class},
properties = "input = target/work/fhir/testinput")
public class MyCamelApplicationTest {
- private static final int CONTAINER_PORT = 8080;
- private static final int EXPOSED_PORT = 8081;
- private static final String CONTAINER_IMAGE = "hapiproject/hapi:v4.2.0";
-
- private static GenericContainer container;
+ @RegisterExtension
+ public static FhirService service = FhirServiceFactory.createSingletonService();
@Autowired
private CamelContext camelContext;
@@ -58,25 +49,6 @@
@Autowired
private ProducerTemplate producerTemplate;
- @BeforeAll
- public static void startServer() throws Exception {
- Consumer<CreateContainerCmd> cmd = e -> {
- e.withPortBindings(new PortBinding(Ports.Binding.bindPort(EXPOSED_PORT),
- new ExposedPort(CONTAINER_PORT)));
- };
-
- container = new GenericContainer(CONTAINER_IMAGE)
- .withNetworkAliases("fhir")
- .withExposedPorts(CONTAINER_PORT)
- .withCreateContainerCmdModifier(cmd)
- .withEnv("HAPI_FHIR_VERSION", "DSTU3")
- .withEnv("HAPI_REUSE_CACHED_SEARCH_RESULTS_MILLIS", "-1")
- .waitingFor(Wait.forListeningPort())
- .waitingFor(Wait.forHttp("/hapi-fhir-jpaserver/fhir/metadata"));
- ;
- container.start();
- }
-
@Test
public void shouldPushConvertedHl7toFhir() throws Exception {
MockEndpoint mock = camelContext.getEndpoint("mock:result", MockEndpoint.class);
@@ -89,4 +61,19 @@
mock.assertIsSatisfied();
Assertions.assertEquals("Freeman", mock.getExchanges().get(0).getIn().getBody(Patient.class).getName().get(0).getFamily());
}
+
+ @Bean
+ CamelContextConfiguration contextConfiguration() {
+ return new CamelContextConfiguration() {
+ @Override
+ public void beforeApplicationStart(CamelContext context) {
+ context.getPropertiesComponent().addInitialProperty("serverUrl", service.getServiceBaseURL());
+ }
+
+ @Override
+ public void afterApplicationStart(CamelContext camelContext) {
+
+ }
+ };
+ }
}