/*
* Copyright 2015 Collective, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.collective.celos;
import static org.junit.Assert.assertEquals;
import org.junit.Assert;
import org.junit.Test;
public class ScheduledTimeTest {
@Test
public void scheduledTimeCompareToWorks() {
ScheduledTime t1 = new ScheduledTime("2013-11-26T13:00Z");
ScheduledTime t2 = new ScheduledTime("2013-11-26T13:01Z");
Assert.assertEquals(-1, t1.compareTo(t2));
Assert.assertEquals(1, t2.compareTo(t1));
Assert.assertEquals(0, t1.compareTo(t1));
Assert.assertEquals(0, t2.compareTo(t2));
}
@Test
public void testMax() {
ScheduledTime t1 = new ScheduledTime("2013-11-26T13:00Z");
ScheduledTime t2 = new ScheduledTime("2013-11-26T13:01Z");
Assert.assertEquals(t2, Util.max(t1, t2));
Assert.assertEquals(t2, Util.max(t2, t1));
}
@Test
public void testGetYear() {
ScheduledTime t = new ScheduledTime("2013-11-18T20:00Z");
assertEquals(2013, t.getYear());
}
@Test
public void testGetMonth() {
ScheduledTime t = new ScheduledTime("2013-11-18T20:00Z");
assertEquals(11, t.getMonth());
}
@Test
public void testGetDay() {
ScheduledTime t = new ScheduledTime("2013-11-18T20:00Z");
assertEquals(18, t.getDay());
}
@Test
public void testGetHour() {
ScheduledTime t = new ScheduledTime("2013-11-18T20:00Z");
assertEquals(20, t.getHour());
}
@Test
public void testGetMinute() {
ScheduledTime t = new ScheduledTime("2013-11-18T20:12Z");
assertEquals(12, t.getMinute());
}
@Test
public void testGetSecond() {
ScheduledTime t = new ScheduledTime("2013-11-18T20:12:53Z");
assertEquals(53, t.getSecond());
}
@Test
public void testGetMillisecond() {
ScheduledTime t = new ScheduledTime("2013-11-18T20:12:53.023Z");
assertEquals(23, t.getMillisecond());
}
@Test
public void testChainSchedTimeModifications() {
ScheduledTime t = new ScheduledTime("2013-11-18T20:12:53.023Z");
ScheduledTime tNew = new ScheduledTime("2015-01-22T00:12:53.023Z");
ScheduledTime t2 = t.plusYears(1).plusMonths(2).plusDays(3).plusHours(4);
assertEquals(t2, tNew);
ScheduledTime tOrig = tNew.minusYears(1).minusMonths(2).minusDays(3).minusHours(4);
assertEquals(tOrig, t);
}
@Test
public void testZeroPaddingStringFuncs() {
ScheduledTime t = new ScheduledTime("2013-01-09T00:12:53.023Z");
assertEquals("2013", t.year());
assertEquals("01", t.month());
assertEquals("09", t.day());
assertEquals("00", t.hour());
assertEquals("12", t.minute());
assertEquals("53", t.second());
ScheduledTime t2 = new ScheduledTime("2013-11-19T10:02:03.023Z");
assertEquals("2013", t2.year());
assertEquals("11", t2.month());
assertEquals("19", t2.day());
assertEquals("10", t2.hour());
assertEquals("02", t2.minute());
assertEquals("03", t2.second());
}
@Test
public void testChainSchedTimeModificationsOneByOne() {
ScheduledTime t = new ScheduledTime("2013-11-18T20:12:53.023Z");
assertEquals(new ScheduledTime("2014-11-18T20:12:53.023Z"), t.plusYears(1));
assertEquals(new ScheduledTime("2012-11-18T20:12:53.023Z"), t.minusYears(1));
assertEquals(new ScheduledTime("2013-12-18T20:12:53.023Z"), t.plusMonths(1));
assertEquals(new ScheduledTime("2013-10-18T20:12:53.023Z"), t.minusMonths(1));
assertEquals(new ScheduledTime("2013-11-19T20:12:53.023Z"), t.plusDays(1));
assertEquals(new ScheduledTime("2013-11-17T20:12:53.023Z"), t.minusDays(1));
assertEquals(new ScheduledTime("2013-11-18T21:12:53.023Z"), t.plusHours(1));
assertEquals(new ScheduledTime("2013-11-18T19:12:53.023Z"), t.minusHours(1));
assertEquals(new ScheduledTime("2013-11-18T20:13:53.023Z"), t.plusMinutes(1));
assertEquals(new ScheduledTime("2013-11-18T20:11:53.023Z"), t.minusMinutes(1));
assertEquals(new ScheduledTime("2013-11-18T20:12:54.023Z"), t.plusSeconds(1));
assertEquals(new ScheduledTime("2013-11-18T20:12:52.023Z"), t.minusSeconds(1));
}
}