mirror of
https://github.com/hapifhir/org.hl7.fhir.core.git
synced 2025-03-02 01:19:14 +00:00
Merge pull request #104 from ahdis/oliveregger_fmltests
FML updates for tests and validator
This commit is contained in:
commit
9b64f03a3e
@ -389,7 +389,9 @@ public class ExpressionNode {
|
|||||||
b.append(")");
|
b.append(")");
|
||||||
}
|
}
|
||||||
if (inner != null) {
|
if (inner != null) {
|
||||||
|
if (!((ExpressionNode.Kind.Function == inner.getKind()) && (ExpressionNode.Function.Item == inner.getFunction()))) {
|
||||||
b.append(".");
|
b.append(".");
|
||||||
|
}
|
||||||
b.append(inner.toString());
|
b.append(inner.toString());
|
||||||
}
|
}
|
||||||
if (operation != null) {
|
if (operation != null) {
|
||||||
|
@ -248,6 +248,7 @@ public class FHIRPathEngine {
|
|||||||
public FHIRPathEngine(IWorkerContext worker) {
|
public FHIRPathEngine(IWorkerContext worker) {
|
||||||
super();
|
super();
|
||||||
this.worker = worker;
|
this.worker = worker;
|
||||||
|
if (this.worker!=null) {
|
||||||
for (StructureDefinition sd : worker.allStructures()) {
|
for (StructureDefinition sd : worker.allStructures()) {
|
||||||
if (sd.getDerivation() == TypeDerivationRule.SPECIALIZATION && sd.getKind() != StructureDefinitionKind.LOGICAL)
|
if (sd.getDerivation() == TypeDerivationRule.SPECIALIZATION && sd.getKind() != StructureDefinitionKind.LOGICAL)
|
||||||
allTypes.put(sd.getName(), sd);
|
allTypes.put(sd.getName(), sd);
|
||||||
@ -256,6 +257,7 @@ public class FHIRPathEngine {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// --- 3 methods to override in children -------------------------------------------------------
|
// --- 3 methods to override in children -------------------------------------------------------
|
||||||
@ -1078,6 +1080,7 @@ public class FHIRPathEngine {
|
|||||||
case Lower: return checkParamCount(lexer, location, exp, 0);
|
case Lower: return checkParamCount(lexer, location, exp, 0);
|
||||||
case Upper: return checkParamCount(lexer, location, exp, 0);
|
case Upper: return checkParamCount(lexer, location, exp, 0);
|
||||||
case ToChars: return checkParamCount(lexer, location, exp, 0);
|
case ToChars: return checkParamCount(lexer, location, exp, 0);
|
||||||
|
case IndexOf : return checkParamCount(lexer, location, exp, 1);
|
||||||
case Substring: return checkParamCount(lexer, location, exp, 1, 2);
|
case Substring: return checkParamCount(lexer, location, exp, 1, 2);
|
||||||
case StartsWith: return checkParamCount(lexer, location, exp, 1);
|
case StartsWith: return checkParamCount(lexer, location, exp, 1);
|
||||||
case EndsWith: return checkParamCount(lexer, location, exp, 1);
|
case EndsWith: return checkParamCount(lexer, location, exp, 1);
|
||||||
|
@ -390,7 +390,9 @@ public class ExpressionNode {
|
|||||||
b.append(")");
|
b.append(")");
|
||||||
}
|
}
|
||||||
if (inner != null) {
|
if (inner != null) {
|
||||||
|
if (!((ExpressionNode.Kind.Function == inner.getKind()) && (ExpressionNode.Function.Item == inner.getFunction()))) {
|
||||||
b.append(".");
|
b.append(".");
|
||||||
|
}
|
||||||
b.append(inner.toString());
|
b.append(inner.toString());
|
||||||
}
|
}
|
||||||
if (operation != null) {
|
if (operation != null) {
|
||||||
|
@ -82,7 +82,7 @@ public class FHIRMappingLanguageTests implements ITransformerServices {
|
|||||||
static public void setUp() throws Exception {
|
static public void setUp() throws Exception {
|
||||||
if (context == null) {
|
if (context == null) {
|
||||||
PackageCacheManager pcm = new PackageCacheManager(true, ToolsVersion.TOOLS_VERSION);
|
PackageCacheManager pcm = new PackageCacheManager(true, ToolsVersion.TOOLS_VERSION);
|
||||||
context = SimpleWorkerContext.fromPackage(pcm.loadPackage("hl7.fhir.core", "4.0.0"));
|
context = SimpleWorkerContext.fromPackage(pcm.loadPackage("hl7.fhir.core", "4.0.1"));
|
||||||
jsonParser = new JsonParser();
|
jsonParser = new JsonParser();
|
||||||
jsonParser.setOutputStyle(OutputStyle.PRETTY);
|
jsonParser.setOutputStyle(OutputStyle.PRETTY);
|
||||||
}
|
}
|
||||||
@ -93,7 +93,7 @@ public class FHIRMappingLanguageTests implements ITransformerServices {
|
|||||||
|
|
||||||
InputStream fileSource = TestingUtilities.loadTestResourceStream("r5", "fml", source);
|
InputStream fileSource = TestingUtilities.loadTestResourceStream("r5", "fml", source);
|
||||||
InputStream fileMap = TestingUtilities.loadTestResourceStream("r5", "fml", map);
|
InputStream fileMap = TestingUtilities.loadTestResourceStream("r5", "fml", map);
|
||||||
String fileOutput = TestingUtilities.tempFile("fml", output);
|
String outputJson = TestingUtilities.loadTestResource("r5","fml", output);
|
||||||
String fileOutputRes = TestingUtilities.tempFile("fml", output)+".out";
|
String fileOutputRes = TestingUtilities.tempFile("fml", output)+".out";
|
||||||
|
|
||||||
outputs.clear();
|
outputs.clear();
|
||||||
@ -117,9 +117,10 @@ public class FHIRMappingLanguageTests implements ITransformerServices {
|
|||||||
if (ok) {
|
if (ok) {
|
||||||
ByteArrayOutputStream boas = new ByteArrayOutputStream();
|
ByteArrayOutputStream boas = new ByteArrayOutputStream();
|
||||||
jsonParser.compose(boas, resource);
|
jsonParser.compose(boas, resource);
|
||||||
log(boas.toString());
|
String result = boas.toString();
|
||||||
|
log(result);
|
||||||
TextFile.bytesToFile(boas.toByteArray(), fileOutputRes);
|
TextFile.bytesToFile(boas.toByteArray(), fileOutputRes);
|
||||||
msg = TestingUtilities.checkJsonIsSame(fileOutputRes,fileOutput);
|
msg = TestingUtilities.checkJsonSrcIsSame(result, outputJson);
|
||||||
assertTrue(msg, Utilities.noString(msg));
|
assertTrue(msg, Utilities.noString(msg));
|
||||||
} else
|
} else
|
||||||
assertTrue("Error, but proper output was expected (" + msg + ")", output.equals("$error"));
|
assertTrue("Error, but proper output was expected (" + msg + ")", output.equals("$error"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user