Skip to content

Commit 787153a

Browse files
authored
Merge pull request #76 from dhis2/DHIS2-18621
fix: d2:hasValue to handle null [DHIS2-18621]
2 parents 2853700 + 6928c4f commit 787153a

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repositories {
99
mavenCentral()
1010
}
1111

12-
version = "1.1.7-SNAPSHOT"
12+
version = "1.1.8-SNAPSHOT"
1313
group = "org.hisp.dhis.lib.expression"
1414

1515
if (project.hasProperty("removeSnapshotSuffix")) {

src/commonMain/kotlin/org/hisp/dhis/lib/expression/eval/Calculator.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,11 @@ internal class Calculator(
9393
NamedFunction.d2_hasUserRole -> functions.d2_hasUserRole(
9494
evalToString(fn.child(0)),
9595
data.supplementaryValues["USER"])
96-
NamedFunction.d2_hasValue -> functions.d2_hasValue(evalToVar(fn.child(0)))
96+
NamedFunction.d2_hasValue -> try {
97+
functions.d2_hasValue(evalToVar(fn.child(0)))
98+
} catch (e: IllegalExpressionException) {
99+
false
100+
}
97101
NamedFunction.d2_inOrgUnitGroup -> functions.d2_inOrgUnitGroup(
98102
evalToString(fn.child(0)),
99103
data.programRuleVariableValues["org_unit"],

src/commonTest/kotlin/org/hisp/dhis/lib/expression/function/HasValueTest.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,17 @@ import kotlin.test.assertEquals
1515
*/
1616
internal class HasValueTest : AbstractVariableBasedTest() {
1717
@Test
18-
fun return_false_for_non_existing_variable() {
18+
fun return_false_for_non_existing_variable_with_UID() {
19+
// 'nonexisting' is treated as valid UID
1920
assertHasValue("d2:hasValue(#{nonexisting})", mapOf(), false)
2021
}
2122

23+
@Test
24+
fun return_false_for_non_existing_variable_with_name() {
25+
assertHasValue("d2:hasValue(#{variable-name})", mapOf(), false)
26+
}
27+
28+
2229
@Test
2330
fun return_false_for_existing_variable_without_value() {
2431
assertHasValue(

0 commit comments

Comments
 (0)