/***************************************************************************** * * Copyright (C) Zenoss, Inc. 2010, all rights reserved. * * This content is made available according to terms specified in * License.zenoss under the directory where your Zenoss product is installed. * ****************************************************************************/ package org.zenoss.zep.rest; import org.junit.Test; import org.zenoss.protobufs.zep.Zep.NumberRange; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.TimeZone; import static org.junit.Assert.*; public class EventsResourceTest { @Test public void testConvertCount() { assertEquals(NumberRange.newBuilder().setFrom(3).build(), EventsResource.convertCount(">2")); assertEquals(NumberRange.newBuilder().setFrom(5).build(), EventsResource.convertCount(">=5")); assertEquals(NumberRange.newBuilder().setTo(7).build(), EventsResource.convertCount("<=7")); assertEquals(NumberRange.newBuilder().setTo(0).build(), EventsResource.convertCount("<1")); assertEquals(NumberRange.newBuilder().setFrom(17).setTo(17).build(), EventsResource.convertCount("17")); assertEquals(NumberRange.newBuilder().setFrom(18).setTo(18).build(), EventsResource.convertCount("=18")); assertEquals(NumberRange.newBuilder().setFrom(5).build(), EventsResource.convertCount("5:")); assertEquals(NumberRange.newBuilder().setFrom(15).setTo(19).build(), EventsResource.convertCount("15:19")); assertEquals(NumberRange.newBuilder().setTo(18).build(), EventsResource.convertCount(":18")); assertNull(EventsResource.convertCount(null)); assertNull(EventsResource.convertCount("")); List<String> failures = Arrays.asList("-17", "=-18", "=>5", "5:4"); for (String failure : failures) { try { EventsResource.convertCount(failure); fail("Expected exception: " + failure); } catch (Exception e) { } } } @Test public void testParseRange() throws ParseException { /* Have to remove precision */ long before = (((System.currentTimeMillis() - 5000) / 1000L) * 1000L); long now = ((System.currentTimeMillis() / 1000L) * 1000L); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); fmt.setTimeZone(TimeZone.getTimeZone("UTC")); String beforeStr = fmt.format(new Date(before)); String nowStr = fmt.format(new Date(now)); assertEquals(before, EventsResource.parseRange(beforeStr) .getStartTime()); assertFalse(EventsResource.parseRange(beforeStr).hasEndTime()); assertEquals(before, EventsResource .parseRange(beforeStr + '/' + nowStr).getStartTime()); assertEquals(now, EventsResource.parseRange(beforeStr + '/' + nowStr) .getEndTime()); List<String> invalidRanges = Arrays.asList(nowStr + '/' + beforeStr); for (String invalidRange : invalidRanges) { try { EventsResource.parseRange(invalidRange); fail("Expected exception on invalid range: " + invalidRange); } catch (Exception e) { /* Expected */ } } } }