@Test
 public void advanceTimeTest() {
   Logger logger = new Logger(3, new ImmutableClock(0, 0));
   observer.attachLogger(logger);
   observer.advanceTime(new ImmutableClock(1, 100));
   assertEquals(new ImmutableClock(1, 100), logger.getCurrentTime());
 }
 @Test
 public void startNewDayTest() {
   Logger logger = new Logger(3, new ImmutableClock(0, 0));
   observer.attachLogger(logger);
   observer.startNewDay(new ImmutableClock(1, 0));
   assertEquals(new ImmutableClock(1, 0), logger.getCurrentTime());
   assertNotNull(logger.getDetailedDays());
 }
 @Test(expected = IllegalArgumentException.class)
 public void startIllegalDay() {
   observer.startNewDay(null);
 }
 @Test(expected = IllegalArgumentException.class)
 public void advanceIllegalTime() {
   observer.advanceTime(null);
 }
 @Test(expected = IllegalArgumentException.class)
 public void detachLoggerTest2() {
   observer.detachLogger(null);
 }
 @Test
 public void detachLoggerTest1() {
   Logger logger = new Logger(3, new ImmutableClock(0, 0));
   observer.attachLogger(logger);
   observer.detachLogger(logger);
 }