### Question:
DefaultExecutedScriptInfoSource implements ExecutedScriptInfoSource { public void registerExecutedScript(ExecutedScript executedScript) { checkExecutedScriptsTable(); if (getExecutedScripts().contains(executedScript)) { updateExecutedScript(executedScript); } else { insertExecutedScript(executedScript); } } DefaultExecutedScriptInfoSource(boolean autoCreateExecutedScriptsTable, String executedScriptsTableName, String fileNameColumnName,
                                           int fileNameColumnSize, String fileLastModifiedAtColumnName, String checksumColumnName, int checksumColumnSize,
                                           String executedAtColumnName, int executedAtColumnSize, String succeededColumnName, DateFormat timestampFormat,
                                           Database defaultSupport, SQLHandler sqlHandler, ScriptFactory scriptFactory); SortedSet<ExecutedScript> getExecutedScripts(); void registerExecutedScript(ExecutedScript executedScript); void updateExecutedScript(ExecutedScript executedScript); void deleteExecutedScript(ExecutedScript executedScript); void renameExecutedScript(ExecutedScript executedScript, Script renamedToScript); void deleteAllExecutedPreprocessingScripts(); void deleteAllExecutedPostprocessingScripts(); void clearAllExecutedScripts(); void markErrorScriptsAsSuccessful(); void removeErrorScripts(); void resetCachedState();  }### Answer:
@Test void registerExecutedScript_NoExecutedScriptsTable() { dropExecutedScriptsTable(); assertThrows(DbMaintainException.class, () -> executedScriptInfoSource.registerExecutedScript(executedScript1)); }