### Question:
TimeGranularity implements Granularity<LocalTime> { public static TimeGranularity create(String granularity) { return new TimeGranularity(ChronoUnit.valueOf(granularity.toUpperCase())); } TimeGranularity(ChronoUnit granularity); static TimeGranularity create(String granularity); @Override Granularity<LocalTime> getFinestGranularity(); @Override boolean isCorrectScale(LocalTime value); @Override Granularity<LocalTime> merge(Granularity<LocalTime> otherGranularity); @Override LocalTime getNext(LocalTime value, int amount); @Override LocalTime getNext(LocalTime value); @Override LocalTime getPrevious(LocalTime value, int amount); @Override LocalTime getPrevious(LocalTime value); @Override LocalTime trimToGranularity(LocalTime value); @Override LocalTime getRandom(LocalTime min, LocalTime max, RandomNumberGenerator randomNumberGenerator); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static final TimeGranularity DEFAULT; }### Answer:
@Test void create_returnsTimeGranularityFromString() { TimeGranularity timeGranularity = TimeGranularity.create("millis"); TimeGranularity expected = new TimeGranularity(ChronoUnit.MILLIS); Assert.assertEquals(expected, timeGranularity); }