### Question:
LauncherConfiguration implements LauncherOptions { public void merge(LauncherOptions other) { if (other == null) { return; } downloadCleanup = other.isFileDownloadCleanupOnInvocation(); downloadTimeStampCheck = other.isFileDownloadCheckTimeStampOnInvocation(); if (StringUtils.isNotBlank(other.getSeLionConfig())) { selionConfig = other.getSeLionConfig(); } }  boolean isFileDownloadCleanupOnInvocation(); T setFileDownloadCleanupOnInvocation(boolean val); boolean isFileDownloadCheckTimeStampOnInvocation(); T setFileDownloadCheckTimeStampOnInvocation(boolean val); String getSeLionConfig(); T setSeLionConfig(String config); void merge(LauncherOptions other); @Override String toString(); JsonElement toJson(); LauncherConfiguration fromJson(JsonElement json); LauncherConfiguration fromJson(String json); static LauncherConfiguration loadFromFile(String configFile); static final String SELION_CONFIG; static final String SELION_CONFIG_ARG; static final String DOWNLOAD_CLEANUP; static final String DOWNLOAD_CLEANUP_ARG; static final String DOWNLOAD_TIMESTAMP_CHECK; static final String DOWNLOAD_TIMESTAMP_CHECK_ARG; }### Answer:
@Test public void testMerge() { LauncherConfiguration lc = new LauncherConfiguration(); TestLauncherOptions tlo = new TestLauncherOptions(); lc.merge(tlo); assertTrue(lc.isFileDownloadCheckTimeStampOnInvocation()); assertFalse(lc.isFileDownloadCleanupOnInvocation()); assertEquals(lc.getSeLionConfig(), tlo.getSeLionConfig()); lc.downloadCleanup = null; LauncherConfiguration otherLc = new LauncherConfiguration(); otherLc.merge(lc); assertTrue(otherLc.isFileDownloadCleanupOnInvocation()); assertEquals(otherLc.getSeLionConfig(), lc.getSeLionConfig()); }