Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit e6edeb3

Browse files
committedMar 5, 2025
YamlTest: adding support for configuring resource (inputfile) base path.
1 parent a4838cd commit e6edeb3

File tree

4 files changed

+23
-4
lines changed

4 files changed

+23
-4
lines changed
 

‎fhirpath/src/test/java/au/csiro/pathling/fhirpath/yaml/YamlFhirpathTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package au.csiro.pathling.fhirpath.yaml;
22

3+
import au.csiro.pathling.test.yaml.YamlConfig;
34
import au.csiro.pathling.test.yaml.YamlSpec;
45
import au.csiro.pathling.test.yaml.YamlSpecTestBase;
56
import jakarta.annotation.Nonnull;
@@ -9,6 +10,9 @@
910

1011
@Slf4j
1112
@Tag("UnitTest")
13+
@YamlConfig(
14+
resourceBase = "fhirpath-ptl/resources"
15+
)
1216
public class YamlFhirpathTest extends YamlSpecTestBase {
1317

1418
@YamlSpec("fhirpath-ptl/cases/literals.yaml")

‎fhirpath/src/test/java/au/csiro/pathling/fhirpath/yaml/YamlReferenceImplTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@
1515

1616
@Slf4j
1717
@Tag("YamlTest")
18-
@YamlConfig("fhirpath-js/config.yaml")
18+
@YamlConfig(
19+
config = "fhirpath-js/config.yaml",
20+
resourceBase = "fhirpath-js/resources"
21+
)
1922
public class YamlReferenceImplTest extends YamlSpecCachedTestBase {
2023

2124

‎fhirpath/src/test/java/au/csiro/pathling/test/yaml/YamlConfig.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,7 @@
66
@Retention(RetentionPolicy.RUNTIME)
77
public @interface YamlConfig {
88

9-
String value();
9+
String config() default "";
10+
11+
String resourceBase() default "";
1012
}

‎fhirpath/src/test/java/au/csiro/pathling/test/yaml/YamlSpecTestBase.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import ca.uhn.fhir.parser.IParser;
2828
import jakarta.annotation.Nonnull;
2929
import jakarta.annotation.Nullable;
30+
import java.io.File;
3031
import java.math.BigDecimal;
3132
import java.math.RoundingMode;
3233
import java.util.List;
@@ -342,8 +343,17 @@ public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
342343

343344
final Optional<String> testConfigPath = context.getTestClass()
344345
.flatMap(c -> Optional.ofNullable(c.getAnnotation(YamlConfig.class)))
345-
.map(YamlConfig::value);
346+
.map(YamlConfig::config)
347+
.filter(s -> !s.isBlank());
348+
349+
final Optional<String> resourceBase = context.getTestClass()
350+
.flatMap(c -> Optional.ofNullable(c.getAnnotation(YamlConfig.class)))
351+
.map(YamlConfig::resourceBase)
352+
.filter(s -> !s.isBlank());
353+
346354
testConfigPath.ifPresent(s -> log.info("Loading test config from: {}", s));
355+
resourceBase.ifPresent(s -> log.info("Resource base : {}", s));
356+
347357
final TestConfig testConfig = testConfigPath
348358
.map(TestResources::getResourceAsString)
349359
.map(TestConfig::fromYaml)
@@ -376,7 +386,7 @@ public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
376386
.map(ts -> StdRuntimeCase.of(ts,
377387
Optional.ofNullable(ts.getInputFile())
378388
.map(f -> (Function<RuntimeContext, ResourceResolver>) FhirResolverFactory.of(
379-
getResourceAsString("fhirpath-js/resources/" + f)))
389+
getResourceAsString(resourceBase.orElse("") + File.separator + f)))
380390
.orElse(defaultResolverFactory),
381391
excluder.apply(ts)
382392
))

0 commit comments

Comments
 (0)
Please sign in to comment.