AuditDurationImpl implements AuditDuration { static AuditDuration fromValues(final long start, final long finish) { if (start < 0 || finish < 0) { throw new IllegalArgumentException("start:" + start + " and finish:" + finish + " must be >= 0"); } if (start > finish) { throw new IllegalArgumentException("start:" + start + " must not be > finish:" + finish); } return new AuditDurationImpl(start, finish); } private  AuditDurationImpl(); private  AuditDurationImpl(final long start, final long finish); @Override long getStart(); @Override long getFinish(); @Override long getDifference(); @XmlValue @Override String getDuration(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static String getStringDuration(final long difference); static AuditDuration sumDuration(Collection<AuditDuration> durations);  }
@Test(expected=IllegalArgumentException.class) public void testFromValuesSubZeroStart() { AuditDurationImpl.fromValues(-10, 0); }
@Test(expected=IllegalArgumentException.class) public void testFromValuesSubZeroFinish() { AuditDurationImpl.fromValues(0, -15); }
@Test(expected=IllegalArgumentException.class) public void testFromValuesHorseBeforeCart() { AuditDurationImpl.fromValues(250000, 200000); }