@Test public void invokeDurationMinutes() { FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofMinutes(9)), "PT9M"); FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofMinutes(200)), "PT3H20M"); FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofMinutes(5000)), "P3DT11H20M"); FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofMinutes(-5000)), "-P3DT11H20M"); }
@Test public void invokeContextNonEmpty() { final Map<String, Object> childContextMap = new HashMap<>(); childContextMap.put("childKey1", "childValue1"); final Map<String, Object> contextMap = new HashMap<>(); contextMap.put("key1", "value1"); contextMap.put("key2", childContextMap); FunctionTestUtil.assertResult(stringFunction.invoke(contextMap), "{ key1 : value1, key2 : { childKey1 : childValue1 } }"); }
@Test public void invokeListNonEmpty() { final List<Object> values = new ArrayList<>(); values.add(1); values.add(BigDecimal.valueOf(10.5)); values.add("test"); FunctionTestUtil.assertResult(stringFunction.invoke(values), "[ 1, 10.5, test ]"); }
@Test public void invokeLocalDateTime() { final LocalDateTime localDateTime = LocalDateTime.now(); FunctionTestUtil.assertResult(stringFunction.invoke(localDateTime), DateAndTimeFunction.FEEL_DATE_TIME.format(localDateTime)); }
@Test public void invokeZonedDateTime() { final ZonedDateTime zonedDateTime = ZonedDateTime.now(); FunctionTestUtil.assertResult(stringFunction.invoke(zonedDateTime), DateAndTimeFunction.REGION_DATETIME_FORMATTER.format(zonedDateTime)); }
@Test public void invokeDurationNanosMillis() { FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofNanos(25)), "PT0.000000025S"); FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofNanos(10000)), "PT0.00001S"); FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofNanos(10025)), "PT0.000010025S"); FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofMillis(1500)), "PT1.5S"); FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofMillis(90061025)), "P1DT1H1M1.025S"); FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofMillis(-90061025)), "-P1DT1H1M1.025S"); }
@Test public void invokeContextEmpty() { FunctionTestUtil.assertResult(stringFunction.invoke(new HashMap<>()), "{ }"); }
@Test public void invokeMaskedFormat() { FunctionTestUtil.assertResult(stringFunction.invoke("%s is here!", new Object[]{"Gorgonzola"}), "Gorgonzola is here!"); } }
@Test public void invokeDurationZero() { FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ZERO), "PT0S"); }
@Test public void invokePeriodZero() { FunctionTestUtil.assertResult(stringFunction.invoke(Period.ZERO), "P0M"); }
@Test public void invokeLocalDate() { final LocalDate localDate = LocalDate.now(); FunctionTestUtil.assertResult(stringFunction.invoke(localDate), localDate.toString()); }
@Test public void invokeOffsetTime() { final OffsetTime offsetTime = OffsetTime.now(); FunctionTestUtil.assertResult(stringFunction.invoke(offsetTime), TimeFunction.FEEL_TIME.format(offsetTime)); }
@Test public void invokeDurationHours() { FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofHours(9)), "PT9H"); FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofHours(200)), "P8DT8H"); FunctionTestUtil.assertResult(stringFunction.invoke(Duration.ofHours(-200)), "-P8DT8H"); }
@Test public void invokeRangeOpenOpen() { FunctionTestUtil.assertResult( stringFunction.invoke(new RangeImpl(Range.RangeBoundary.OPEN, 12, 15, Range.RangeBoundary.OPEN)), "( 12 .. 15 )"); }
@Test public void invokeRangeOpenClosed() { FunctionTestUtil.assertResult( stringFunction.invoke(new RangeImpl(Range.RangeBoundary.OPEN, 12, 15, Range.RangeBoundary.CLOSED)), "( 12 .. 15 ]"); }
@Test public void invokeRangeClosedOpen() { FunctionTestUtil.assertResult( stringFunction.invoke(new RangeImpl(Range.RangeBoundary.CLOSED, 12, 15, Range.RangeBoundary.OPEN)), "[ 12 .. 15 )"); }
@Test public void invokeRangeClosedClosed() { FunctionTestUtil.assertResult( stringFunction.invoke(new RangeImpl(Range.RangeBoundary.CLOSED, 12, 15, Range.RangeBoundary.CLOSED)), "[ 12 .. 15 ]"); }
@Test public void testComposite5() { final FEELFnResult<TemporalAccessor> p1 = dateTimeFunction.invoke("2017-08-10T10:20:00@Europe/Paris"); FunctionTestUtil.assertResult(p1, ZonedDateTime.of(2017, 8, 10, 10, 20, 0, 0, ZoneId.of("Europe/Paris"))); final TemporalAccessor timeOnDateTime = timeFunction.invoke(p1.getOrElse(null)).getOrElse(null); assertNotNull(timeOnDateTime); assertEquals(LocalTime.of(10, 20, 0), timeOnDateTime.query(TemporalQueries.localTime())); assertEquals(ZoneId.of("Europe/Paris"), timeOnDateTime.query(TemporalQueries.zone())); FunctionTestUtil.assertResult(stringFunction.invoke(timeOnDateTime), "10:20:00@Europe/Paris"); } }