From 01a77aff0422884ed7b18ba8d00a0495d0bab88e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Mathieu?= Date: Mon, 20 Jan 2025 17:45:56 +0100 Subject: [PATCH] fix(core): randomInt receive a Long not an Integer --- .../pebble/functions/RandomIntFunction.java | 16 ++++++++-------- .../functions/RandomIntFunctionTest.java | 18 +++++++++--------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/core/src/main/java/io/kestra/core/runners/pebble/functions/RandomIntFunction.java b/core/src/main/java/io/kestra/core/runners/pebble/functions/RandomIntFunction.java index 22ab5642c3f..53745df19e3 100644 --- a/core/src/main/java/io/kestra/core/runners/pebble/functions/RandomIntFunction.java +++ b/core/src/main/java/io/kestra/core/runners/pebble/functions/RandomIntFunction.java @@ -13,12 +13,12 @@ public class RandomIntFunction implements Function { @Override public Object execute( Map args, PebbleTemplate self, EvaluationContext context, int lineNumber) { - Integer lower = getArgument(args, "lower", self, lineNumber); - Integer upper = getArgument(args, "upper", self, lineNumber); + Long lower = getArgument(args, "lower", self, lineNumber); + Long upper = getArgument(args, "upper", self, lineNumber); if (upper < lower) { throw new PebbleException( null, - "In 'GenerateRandomNumber' upper is less than lower", + "In 'randomIn()' upper is less than lower", lineNumber, self.getName()); } @@ -30,23 +30,23 @@ public List getArgumentNames() { return List.of("lower", "upper"); } - private Integer getArgument( + private Long getArgument( Map args, String arg, PebbleTemplate self, int lineNumber) { if (!args.containsKey(arg)) { throw new PebbleException( null, - "The 'GenerateRandomNumber' function expects an argument " + arg, + "The 'randomIn()' function expects an argument " + arg, lineNumber, self.getName()); } - if (!(args.get(arg) instanceof Integer)) { + if (!(args.get(arg) instanceof Long)) { throw new PebbleException( null, - "The 'GenerateRandomNumber' function expects an argument " + arg + "with type Integer.", + "The 'randomIn()' function expects an argument " + arg + " of type Long.", lineNumber, self.getName()); } - return (Integer) args.get(arg); + return (Long) args.get(arg); } } diff --git a/core/src/test/java/io/kestra/core/runners/pebble/functions/RandomIntFunctionTest.java b/core/src/test/java/io/kestra/core/runners/pebble/functions/RandomIntFunctionTest.java index fdf9a948a52..dca7fd12316 100644 --- a/core/src/test/java/io/kestra/core/runners/pebble/functions/RandomIntFunctionTest.java +++ b/core/src/test/java/io/kestra/core/runners/pebble/functions/RandomIntFunctionTest.java @@ -19,11 +19,11 @@ class RandomIntFunctionTest { void missingParameter() { assertThrows( IllegalVariableEvaluationException.class, - () -> variableRenderer.render("{{randomInt(lower)}}", Map.of("lower", 10))); + () -> variableRenderer.render("{{randomInt(lower)}}", Map.of("lower", 10L))); assertThrows( IllegalVariableEvaluationException.class, - () -> variableRenderer.render("{{randomInt(upper)}}", Map.of("upper", 1))); + () -> variableRenderer.render("{{randomInt(upper)}}", Map.of("upper", 1L))); assertThrows( IllegalVariableEvaluationException.class, () -> variableRenderer.render("{{randomInt()}}", Collections.emptyMap())); @@ -33,8 +33,8 @@ void missingParameter() { void testGenerateNumberPositive() throws IllegalVariableEvaluationException { String rendered = variableRenderer.render( - "{{ randomInt(lower, upper) }}", Map.of("lower", 1, "upper", 10)); - assertThat(rendered, Integer.parseInt(rendered) >= 1 && Integer.parseInt(rendered) <= 10); + "{{ randomInt(lower, upper) }}", Map.of("lower", 1L, "upper", 10L)); + assertThat(rendered, Long.parseLong(rendered) >= 1L && Long.parseLong(rendered) <= 10L); } @Test @@ -50,22 +50,22 @@ void testGenerateNumberUpperLessThanLower() { IllegalVariableEvaluationException.class, () -> variableRenderer.render( - "{{ randomInt(lower, upper) }}", Map.of("lower", 10, "upper", 1))); + "{{ randomInt(lower, upper) }}", Map.of("lower", 10L, "upper", 1L))); } @Test void testGenerateNumberNegative() throws IllegalVariableEvaluationException { String rendered = variableRenderer.render( - "{{ randomInt(lower, upper) }}", Map.of("lower", -10, "upper", -1)); - assertThat(rendered, Integer.parseInt(rendered) >= -10 && Integer.parseInt(rendered) <= -1); + "{{ randomInt(lower, upper) }}", Map.of("lower", -10L, "upper", -1L)); + assertThat(rendered, Long.parseLong(rendered) >= -10L && Long.parseLong(rendered) <= -1L); } @Test void testGenerateNumberSame() throws IllegalVariableEvaluationException { String rendered = variableRenderer.render( - "{{ randomInt(lower, upper) }}", Map.of("lower", 10, "upper", 10)); - assertThat(rendered, Integer.parseInt(rendered) == 10); + "{{ randomInt(lower, upper) }}", Map.of("lower", 10L, "upper", 10L)); + assertThat(rendered, Long.parseLong(rendered) == 10); } }