Skip to content

Commit 4415e2c

Browse files
committed
How to use varargs signature #48
1 parent f528267 commit 4415e2c

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

src/test/java/com/dashjoin/jsonata/CustomFunctionTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.List;
44
import java.util.Map;
55
import org.junit.jupiter.api.Assertions;
6+
import org.junit.jupiter.api.Disabled;
67
import org.junit.jupiter.api.Test;
78
import com.dashjoin.jsonata.Jsonata.JFunction;
89
import com.dashjoin.jsonata.Jsonata.JFunctionCallable;
@@ -70,4 +71,21 @@ public Object call(Object input, @SuppressWarnings("rawtypes") List args) throws
7071
Assertions.assertEquals("T0410", ex.getError());
7172
Assertions.assertEquals("append", ex.getExpected());
7273
}
74+
75+
@Disabled
76+
@Test
77+
public void testVarArg() {
78+
var expression = Jsonata.jsonata("$sum(1,2,3)");
79+
expression.registerFunction("sum", new JFunction(new JFunctionCallable() {
80+
@SuppressWarnings("rawtypes")
81+
@Override
82+
public Object call(Object input, List args) throws Throwable {
83+
int sum = 0;
84+
for (Object i : args)
85+
sum += (int) i;
86+
return sum;
87+
}
88+
}, "<n+:n>"));
89+
Assertions.assertEquals(6, expression.evaluate(null));
90+
}
7391
}

0 commit comments

Comments
 (0)