public TimeRange parseTimeRange(final String timerangeKeyword) {
        try {
            if (StringUtils.isBlank(timerangeKeyword)) {
                return null;
            }
            final Optional<TimeRange> shortTimeRange = shortTimerangeFormatParser.parse(timerangeKeyword);
            return shortTimeRange.orElseGet(() -> KeywordRange.create(timerangeKeyword, "UTC"));
        } catch (Exception e) {
            throw new IllegalArgumentException("Could not parse timerange " + timerangeKeyword + ". It should have a short format (i.e. '2h') or natural date format (i.e. 'last 2 hours')");
        }
    }
@Test
    void buildsKeywordTimerangeIfInputIsNotInShortFormat() {
        doReturn(Optional.empty()).when(shortTimerangeFormatParser).parse("last 42 years");
        final TimeRange result = toTest.parseTimeRange("last 42 years");
        assertEquals(KeywordRange.create("last 42 years", "UTC"), result);
    }