private static void assertNull(final FEELFnResult<?> result) { Assert.assertNull(result.getOrElse(null)); } }
private static void assertResultDoublePrecision(final FEELFnResult<BigDecimal> result, final BigDecimal val) { assertTrue(result.isRight()); assertThat(Double.compare(result.getOrElse(null).doubleValue(), val.doubleValue()), Matchers.equalTo(0)); }
private static <T> void assertResult(final FEELFnResult<T> result, final T val) { assertTrue(result.isRight()); assertThat(result.getOrElse(null), Matchers.equalTo(val)); }
@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)); }
@Test public void testComposite4() { final FEELFnResult<TemporalAccessor> p1 = dateFunction.invoke("2017-01-01"); final FEELFnResult<TemporalAccessor> p2 = timeFunction.invoke("23:59:01@Europe/Paris"); FunctionTestUtil.assertResult(p1, LocalDate.of(2017, 1, 1)); final TemporalAccessor p2TA = p2.getOrElse(null); assertNotNull(p2TA); assertEquals(LocalTime.of(23, 59, 1), p2TA.query(TemporalQueries.localTime())); assertEquals(ZoneId.of("Europe/Paris"), p2TA.query(TemporalQueries.zone())); final FEELFnResult<TemporalAccessor> result = dateTimeFunction.invoke(p1.getOrElse(null), p2.getOrElse(null)); FunctionTestUtil.assertResult(result, ZonedDateTime.of(2017, 1, 1, 23, 59, 1, 0, ZoneId.of("Europe/Paris"))); }
@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"); } }
@Test public void parseWithZoneIANA() { final TemporalAccessor parsedResult = timeFunction.invoke("00:01:00@Europe/Paris").getOrElse(null); assertEquals(LocalTime.of(0, 1, 0), parsedResult.query(TemporalQueries.localTime())); assertEquals(ZoneId.of("Europe/Paris"), parsedResult.query(TemporalQueries.zone())); }
@Test public void parseWithZone() { final TemporalAccessor parsedResult = timeFunction.invoke("00:01:00@Etc/UTC").getOrElse(null); assertEquals(LocalTime.of(0, 1, 0), parsedResult.query(TemporalQueries.localTime())); assertEquals(ZoneId.of("Etc/UTC"), parsedResult.query(TemporalQueries.zone())); }