package org.ovirt.engine.core.compat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import org.junit.Test; public class TimeSpanTest { @Test public void testBasicConstructors() { TimeSpan span = new TimeSpan(10, 10, 10); assertEquals("hours1", 10, span.Hours); assertEquals("minutes1", 10, span.Minutes); assertEquals("seconds1", 10, span.Seconds); assertEquals("days1", 0, span.Days); assertEquals("miliseconds", 0, span.Milliseconds); } @Test public void testNegativeConstructors() { TimeSpan span = new TimeSpan(1, -20, -10, 10); assertEquals("days1", 0, span.Days); assertEquals("hours1", 3, span.Hours); assertEquals("minutes1", 50, span.Minutes); assertEquals("seconds1", 10, span.Seconds); assertEquals("miliseconds", 0, span.Milliseconds); } @Test public void testParsing() { TimeSpan span = TimeSpan.parse("1"); assertEquals("days1", 1, span.Days); span = TimeSpan.parse("-1"); assertEquals("days2", -1, span.Days); span = TimeSpan.parse("1.02:03"); assertEquals("days3", 1, span.Days); assertEquals("hours3", 2, span.Hours); assertEquals("min3", 3, span.Minutes); span = TimeSpan.parse("1.02:03:04.05"); assertEquals("days4", 1, span.Days); assertEquals("hours4", 2, span.Hours); assertEquals("min4", 3, span.Minutes); assertEquals("sec4", 4, span.Seconds); assertEquals("ms4", 5, span.Milliseconds); span = TimeSpan.parse("-1.02:03:04.05"); assertEquals("days5", -1, span.Days); assertEquals("hours5", -2, span.Hours); assertEquals("min5", -3, span.Minutes); assertEquals("sec5", -4, span.Seconds); assertEquals("ms5", -5, span.Milliseconds); span = TimeSpan.parse("02:03:04.05"); assertEquals("days6", 0, span.Days); assertEquals("hours6", 2, span.Hours); assertEquals("min6", 3, span.Minutes); assertEquals("sec6", 4, span.Seconds); assertEquals("ms6", 5, span.Milliseconds); span = TimeSpan.parse("-02:03:04.05"); assertEquals("days7", 0, span.Days); assertEquals("hours7", -2, span.Hours); assertEquals("min7", -3, span.Minutes); assertEquals("sec7", -4, span.Seconds); assertEquals("ms7", -5, span.Milliseconds); } @Test(expected = IllegalArgumentException.class) public void testInvalidParse() { TimeSpan.parse("1.02.03"); } @Test public void testTryParse() { TimeSpan ref = TimeSpan.tryParse("-1.02:03:04.05"); assertNotNull("A TimeSpan should be returned", ref); assertEquals("days", -1, ref.Days); ref = TimeSpan.tryParse("A Long Time"); assertNull("A TimeSpan should not be returned", ref); } }