public static String relativeToAbsolute(String relative) throws LensException { return relativeToAbsolute(relative, new Date()); }
public static String relativeToAbsolute(String relative) throws LensException { return relativeToAbsolute(relative, new Date()); }
@Override public String lookup(String s) { try { return DateUtil.relativeToAbsolute(s, NOW); } catch (LensException e) { throw new RuntimeException(e); } } }, "$absolute{", "}", '$');
@Test public void testRelativeToAbsolute() throws LensException { Date now = new Date(); Date nowDay = DateUtils.truncate(now, DAY_OF_MONTH); Date nowDayMinus2Days = DateUtils.add(nowDay, DAY_OF_MONTH, -2); assertEquals(relativeToAbsolute("now", now), DateUtil.formatAbsDate(now)); assertEquals(relativeToAbsolute("now.day", now), DateUtil.formatAbsDate(nowDay)); assertEquals(relativeToAbsolute("now.day - 2 days", now), DateUtil.formatAbsDate(nowDayMinus2Days)); assertEquals(relativeToAbsolute("now.day - 2 day", now), DateUtil.formatAbsDate(nowDayMinus2Days)); assertEquals(relativeToAbsolute("now.day - 2day", now), DateUtil.formatAbsDate(nowDayMinus2Days)); assertEquals(relativeToAbsolute("now.day -2 day", now), DateUtil.formatAbsDate(nowDayMinus2Days)); assertEquals(relativeToAbsolute("now.day -2 days", now), DateUtil.formatAbsDate(nowDayMinus2Days)); } @Test
@DataProvider(name = "properties") public Object[][] factProperties() throws LensException { String minus1DaysRelative = "now.day -1 days"; String minus2DaysRelative = "now.day -2 days"; String plus1DaysRelative = "now.day +1 days"; String plus2DaysRelative = "now.day +2 days"; String minus1DaysAbsolute = DateUtil.relativeToAbsolute(minus1DaysRelative, now); String minus2DaysAbsolute = DateUtil.relativeToAbsolute(minus2DaysRelative, now); String plus1DaysAbsolute = DateUtil.relativeToAbsolute(plus1DaysRelative, now); String plus2DaysAbsolute = DateUtil.relativeToAbsolute(plus2DaysRelative, now); Date minus1DaysDate = DateUtil.resolveRelativeDate(minus1DaysRelative, now); Date minus2DaysDate = DateUtil.resolveRelativeDate(minus2DaysRelative, now); Date plus1DaysDate = DateUtil.resolveRelativeDate(plus1DaysRelative, now); Date plus2DaysDate = DateUtil.resolveRelativeDate(plus2DaysRelative, now); return new Object[][]{ {null, null, null, null, new Date(Long.MIN_VALUE), new Date(Long.MAX_VALUE)}, {null, minus2DaysRelative, null, plus2DaysRelative, minus2DaysDate, plus2DaysDate}, {minus2DaysAbsolute, null, plus2DaysAbsolute, null, minus2DaysDate, plus2DaysDate}, {minus1DaysAbsolute, minus2DaysRelative, plus1DaysAbsolute, plus2DaysRelative, minus1DaysDate, plus1DaysDate}, {minus2DaysAbsolute, minus1DaysRelative, plus2DaysAbsolute, plus1DaysRelative, minus1DaysDate, plus1DaysDate}, }; }
@DataProvider(name = "properties") public Object[][] factProperties() throws LensException { String minus1DaysRelative = "now.day -1 days"; String minus2DaysRelative = "now.day -2 days"; String plus1DaysRelative = "now.day +1 days"; String plus2DaysRelative = "now.day +2 days"; String minus1DaysAbsolute = DateUtil.relativeToAbsolute(minus1DaysRelative, now); String minus2DaysAbsolute = DateUtil.relativeToAbsolute(minus2DaysRelative, now); String plus1DaysAbsolute = DateUtil.relativeToAbsolute(plus1DaysRelative, now); String plus2DaysAbsolute = DateUtil.relativeToAbsolute(plus2DaysRelative, now); Date minus1DaysDate = DateUtil.resolveRelativeDate(minus1DaysRelative, now); Date minus2DaysDate = DateUtil.resolveRelativeDate(minus2DaysRelative, now); Date plus1DaysDate = DateUtil.resolveRelativeDate(plus1DaysRelative, now); Date plus2DaysDate = DateUtil.resolveRelativeDate(plus2DaysRelative, now); return new Object[][]{ {null, null, null, null, new Date(Long.MIN_VALUE), new Date(Long.MAX_VALUE)}, {null, minus2DaysRelative, null, plus2DaysRelative, minus2DaysDate, plus2DaysDate}, {minus2DaysAbsolute, null, plus2DaysAbsolute, null, minus2DaysDate, plus2DaysDate}, {minus1DaysAbsolute, minus2DaysRelative, plus1DaysAbsolute, plus2DaysRelative, minus1DaysDate, plus1DaysDate}, {minus2DaysAbsolute, minus1DaysRelative, plus2DaysAbsolute, plus1DaysRelative, minus1DaysDate, plus1DaysDate}, }; } private Cube getMockCube(Map<String, String> properties) {