package org.ovirt.engine.core.compat; import junit.framework.TestCase; public class TimeSpanTest extends TestCase { public void testBasicConstructors() { TimeSpan span = new TimeSpan(10, 10, 10); System.out.println(span); 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); } public void testNegativeConstructors() { TimeSpan span = new TimeSpan(1, -20, -10, 10); System.out.println(span); 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); } 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); } public void testInvalidParse() { try { TimeSpan.Parse("1.02.03"); fail("No exception was thrown"); } catch (CompatException e) { // eat it, we are ok } } public void testTryParse() { RefObject<TimeSpan> ref = new RefObject<TimeSpan>(); TimeSpan.TryParse("-1.02:03:04.05", ref); assertNotNull("A TimeSpan should be returned", ref.argvalue); assertEquals("days", -1, ref.argvalue.Days); ref = new RefObject<TimeSpan>(); TimeSpan.TryParse("A Long Time", ref); assertNull("A TimeSpan should not be returned", ref.argvalue); } }