package ch.rgw.tools; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.junit.Test; public class Test_TimeTool { @Test public void testGetDurationToNowString(){ TimeTool timeTool = new TimeTool(); String duration = timeTool.getDurationToNowString(); assertNotNull(timeTool.toString(), duration); assertFalse(containsDigit(duration)); timeTool = new TimeTool(); timeTool.addDays(1); duration = timeTool.getDurationToNowString(); assertNotNull(timeTool.toString(), duration); assertTrue(containsDigit(duration)); String[] split = splitByFormat(timeTool.getDaysFormat(1)); assertTrue(split.length == 2); assertNotNull(timeTool.toString(), split[0]); assertNotNull(timeTool.toString(), split[1]); assertTrue(duration.startsWith(split[0]) && duration.endsWith(split[1])); timeTool = new TimeTool(); timeTool.addDays(-1); duration = timeTool.getDurationToNowString(); assertNotNull(timeTool.toString(), duration); assertTrue(containsDigit(duration)); split = splitByFormat(timeTool.getDaysFormat(-1)); assertTrue(split.length == 2); assertNotNull(timeTool.toString(), split[0]); assertNotNull(timeTool.toString(), split[1]); assertTrue(timeTool.toString(), duration.startsWith(split[0]) && duration.endsWith(split[1])); timeTool = new TimeTool(); timeTool.addDays(15); // in order not to break the week / day barrier in // timeTool.getDurationToNowString() due to the required time for test execution timeTool.addSeconds(10); duration = timeTool.getDurationToNowString(); assertNotNull(timeTool.toString(), duration); assertTrue(containsDigit(duration)); split = splitByFormat(timeTool.getWeeksFormat(2)); assertTrue(split.length == 2); assertNotNull(timeTool.toString(), split[0]); assertNotNull(timeTool.toString(), split[1]); assertTrue(timeTool.toString() + ": " + duration + " | " + split[0] + " | " + split[1], duration.startsWith(split[0]) && duration.endsWith(split[1])); timeTool = new TimeTool(); timeTool.addDays(-15); duration = timeTool.getDurationToNowString(); assertNotNull(timeTool.toString(), duration); assertTrue(containsDigit(duration)); split = splitByFormat(timeTool.getWeeksFormat(-2)); assertTrue(split.length == 2); assertNotNull(timeTool.toString(), split[0]); assertNotNull(timeTool.toString(), split[1]); assertTrue(timeTool.toString(), duration.startsWith(split[0]) && duration.endsWith(split[1])); timeTool = new TimeTool(); timeTool.addDays(62); duration = timeTool.getDurationToNowString(); assertNotNull(timeTool.toString(), duration); assertTrue(containsDigit(duration)); split = splitByFormat(timeTool.getMonthsFormat(2)); assertTrue(split.length == 2); assertNotNull(timeTool.toString(), split[0]); assertNotNull(timeTool.toString(), split[1]); assertTrue(timeTool.toString(), duration.startsWith(split[0]) && duration.endsWith(split[1])); timeTool = new TimeTool(); timeTool.addDays(-62); duration = timeTool.getDurationToNowString(); assertNotNull(timeTool.toString(), duration); assertTrue(containsDigit(duration)); split = splitByFormat(timeTool.getMonthsFormat(-2)); assertTrue(split.length == 2); assertNotNull(timeTool.toString(), split[0]); assertNotNull(timeTool.toString(), split[1]); assertTrue(timeTool.toString(), duration.startsWith(split[0]) && duration.endsWith(split[1])); timeTool = new TimeTool(); timeTool.addDays(732); duration = timeTool.getDurationToNowString(); assertNotNull(timeTool.toString(), duration); assertTrue(containsDigit(duration)); split = splitByFormat(timeTool.getYearsFormat(2)); assertTrue(split.length == 2); assertNotNull(timeTool.toString(), split[0]); assertNotNull(timeTool.toString(), split[1]); assertTrue(timeTool.toString(), duration.startsWith(split[0]) && duration.endsWith(split[1])); timeTool = new TimeTool(); timeTool.addDays(-732); duration = timeTool.getDurationToNowString(); assertNotNull(timeTool.toString(), duration); assertTrue(containsDigit(duration)); split = splitByFormat(timeTool.getYearsFormat(-2)); assertTrue(split.length == 2); assertNotNull(timeTool.toString(), split[0]); assertNotNull(timeTool.toString(), split[1]); assertTrue(timeTool.toString(), duration.startsWith(split[0]) && duration.endsWith(split[1])); } private boolean containsDigit(String duration){ for (int i = 0; i < duration.length(); i++) { char c = duration.charAt(i); if (Character.isDigit(c)) { return true; } } return false; } private String[] splitByFormat(String format){ return format.split("%d"); } }