### Question:
PluginConfigurationProcessor { @VisibleForTesting static ModificationTimeProvider createModificationTimeProvider(String modificationTime) throws InvalidFilesModificationTimeException { try { switch (modificationTime) { case "EPOCH_PLUS_SECOND": Instant epochPlusSecond = Instant.ofEpochSecond(1); return (ignored1, ignored2) -> epochPlusSecond; default: Instant timestamp = DateTimeFormatter.ISO_DATE_TIME.parse(modificationTime, Instant::from); return (ignored1, ignored2) -> timestamp; } } catch (DateTimeParseException ex) { throw new InvalidFilesModificationTimeException(modificationTime, modificationTime, ex); } }  static JibBuildRunner createJibBuildRunnerForDockerDaemonImage(
      RawConfiguration rawConfiguration,
      InferredAuthProvider inferredAuthProvider,
      ProjectProperties projectProperties,
      HelpfulSuggestions helpfulSuggestions); static JibBuildRunner createJibBuildRunnerForTarImage(
      RawConfiguration rawConfiguration,
      InferredAuthProvider inferredAuthProvider,
      ProjectProperties projectProperties,
      HelpfulSuggestions helpfulSuggestions); static JibBuildRunner createJibBuildRunnerForRegistryImage(
      RawConfiguration rawConfiguration,
      InferredAuthProvider inferredAuthProvider,
      ProjectProperties projectProperties,
      HelpfulSuggestions helpfulSuggestions); static String getSkaffoldSyncMap(
      RawConfiguration rawConfiguration, ProjectProperties projectProperties, Set<Path> excludes);  }### Answer:
@Test public void testCreateModificationTimeProvider_epochPlusSecond() throws InvalidFilesModificationTimeException { ModificationTimeProvider timeProvider = PluginConfigurationProcessor.createModificationTimeProvider("EPOCH_PLUS_SECOND"); Assert.assertEquals( Instant.ofEpochSecond(1), timeProvider.get(Paths.get("foo"), AbsoluteUnixPath.get("/bar"))); }
@Test public void testCreateModificationTimeProvider_isoDateTimeValue() throws InvalidFilesModificationTimeException { ModificationTimeProvider timeProvider = PluginConfigurationProcessor.createModificationTimeProvider("2011-12-03T10:15:30+09:00"); Instant expected = DateTimeFormatter.ISO_DATE_TIME.parse("2011-12-03T01:15:30Z", Instant::from); Assert.assertEquals(expected, timeProvider.get(Paths.get("foo"), AbsoluteUnixPath.get("/bar"))); }
@Test public void testCreateModificationTimeProvider_invalidValue() { try { ModificationTimeProvider timeProvider = PluginConfigurationProcessor.createModificationTimeProvider("invalid format"); timeProvider.get(Paths.get("foo"), AbsoluteUnixPath.get("/bar")); Assert.fail(); } catch (InvalidFilesModificationTimeException ex) { Assert.assertEquals("invalid format", ex.getMessage()); Assert.assertEquals("invalid format", ex.getInvalidFilesModificationTime()); } }