@Test public void invokeTimeUnitsParamsNull() { FunctionTestUtil.assertResultError(timeFunction.invoke(null, null, null, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(null, null, 1, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(null, 1, null, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(null, 1, 1, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(1, null, null, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(1, null, 1, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(1, 1, null, null), InvalidParametersEvent.class); }
@Before public void setUp() { timeFunction = new TimeFunction(); }
@Test public void invokeTimeUnitsParamsUnsupportedNumber() { FunctionTestUtil.assertResultError(timeFunction.invoke(Double.POSITIVE_INFINITY, 1, 1, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(Double.NEGATIVE_INFINITY, 1, 1, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(1, Double.POSITIVE_INFINITY, 1, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(1, Double.NEGATIVE_INFINITY, 1, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(1, 1, Double.POSITIVE_INFINITY, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(1, 1, Double.NEGATIVE_INFINITY, null), InvalidParametersEvent.class); }
@Before public void setUp() { dateTimeFunction = new DateAndTimeFunction(); dateFunction = new DateFunction(); timeFunction = new TimeFunction(); stringFunction = new StringFunction(); }
@Test public void invokeTimeUnitsParamsOutOfBounds() { FunctionTestUtil.assertResultError(timeFunction.invoke(40, 1, 1, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(1, 900, 1, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(timeFunction.invoke(1, 1, 900, null), InvalidParametersEvent.class); }
return BuiltInFunctions.getFunction( DateFunction.class ).invoke( value ).cata( justNull(), Function.identity() ); } else if ( feelType.equals( org.kie.dmn.feel.lang.types.BuiltInType.TIME ) ) { return BuiltInFunctions.getFunction( TimeFunction.class ).invoke( value ).cata( justNull(), Function.identity() ); } else if ( feelType.equals( org.kie.dmn.feel.lang.types.BuiltInType.DATE_TIME ) ) { return BuiltInFunctions.getFunction( DateAndTimeFunction.class ).invoke( value ).cata( justNull(), Function.identity() );
@Test public void invokeStringParamTimeWrongFormat() { FunctionTestUtil.assertResultError(timeFunction.invoke("10-15:06"), InvalidParametersEvent.class); }
@Test public void invokeTemporalAccessorParamNull() { FunctionTestUtil.assertResultError(timeFunction.invoke((TemporalAccessor) null), InvalidParametersEvent.class); }
@Test public void invokeWrongIANAformat() { FunctionTestUtil.assertResultError(timeFunction.invoke("13:20:00+02:00@Europe/Paris"), InvalidParametersEvent.class); }
@Test public void invokeStringParamNull() { FunctionTestUtil.assertResultError(timeFunction.invoke((String) null), InvalidParametersEvent.class); }
@Test public void invokeStringParamNotDateOrTime() { FunctionTestUtil.assertResultError(timeFunction.invoke("test"), InvalidParametersEvent.class); }
@Test public void invokeTemporalAccessorParamUnsupportedAccessor() { FunctionTestUtil.assertResultError(timeFunction.invoke(DayOfWeek.MONDAY), InvalidParametersEvent.class); }
@Test public void invokeTimeUnitsParamsNoOffsetWithNanoseconds() { FunctionTestUtil.assertResult(timeFunction.invoke(10, 43, BigDecimal.valueOf(15.154), null), LocalTime.of(10, 43, 15, 154000000)); }
@Test public void invokeTemporalAccessorParamDateTime() { FunctionTestUtil.assertResult(timeFunction.invoke(LocalDateTime.of(2017, 6, 12, 11, 43)), LocalTime.of(11, 43, 0)); }
@Test public void invokeTemporalAccessorParamDate() { FunctionTestUtil.assertResult(timeFunction.invoke(LocalDate.of(2017, 6, 12)), OffsetTime.of(0, 0, 0, 0, ZoneOffset.UTC)); }
@Test public void invokeStringParamNoOffset() { FunctionTestUtil.assertResult(timeFunction.invoke("10:15:06"), LocalTime.of(10,15,6)); }
@Test public void invokeTimeUnitsParamsNoOffset() { FunctionTestUtil.assertResult(timeFunction.invoke(10, 43, 15, null), LocalTime.of(10, 43, 15)); }
@Test public void invokeTimeUnitsParamsWithOffsetWithNanoseconds() { FunctionTestUtil.assertResult( timeFunction.invoke(10, 43, BigDecimal.valueOf(15.154), Duration.ofHours(1)), OffsetTime.of(10, 43, 15, 154000000, ZoneOffset.ofHours(1))); FunctionTestUtil.assertResult( timeFunction.invoke(10, 43, BigDecimal.valueOf(15.154), Duration.ofHours(-1)), OffsetTime.of(10, 43, 15, 154000000, ZoneOffset.ofHours(-1))); } }
@Test public void testComposite1() { final FEELFnResult<TemporalAccessor> p1 = dateTimeFunction.invoke("2017-08-10T10:20:00+02:00"); final FEELFnResult<TemporalAccessor> p2 = timeFunction.invoke("23:59:01"); FunctionTestUtil.assertResult(p1, ZonedDateTime.of(2017, 8, 10, 10, 20, 0, 0, ZoneId.of("+02:00"))); FunctionTestUtil.assertResult(p2, LocalTime.of(23, 59, 1)); final FEELFnResult<TemporalAccessor> result = dateTimeFunction.invoke(p1.getOrElse(null), p2.getOrElse(null)); FunctionTestUtil.assertResult(result, LocalDateTime.of(2017, 8, 10, 23, 59, 1)); }