### Question:
DefaultFileInputGenerator implements FileInputGenerator { @Override public RelationalInput generateNewCopy() throws InputGenerationException { try { return new FileIterator(inputFile.getName(), new FileReader(inputFile), setting); } catch (FileNotFoundException e) { throw new InputGenerationException("File not found!", e); } catch (InputIterationException e) { throw new InputGenerationException("Could not iterate over the first line of the file input", e); } } protected  DefaultFileInputGenerator();  DefaultFileInputGenerator(File inputFile);  DefaultFileInputGenerator(ConfigurationSettingFileInput setting);  DefaultFileInputGenerator(File inputFile, ConfigurationSettingFileInput setting); @Override RelationalInput generateNewCopy(); @Override File getInputFile(); ConfigurationSettingFileInput getSetting(); @Override void close();  }### Answer:
@Test public void testGenerateNewCsvFile() throws InputGenerationException, InputIterationException { RelationalInput fileInput = generator.generateNewCopy(); assertEquals(expectedSkipDifferingLines, ((FileIterator) fileInput).skipDifferingLines); assertEquals(csvFileFixture.expectedHeader(), fileInput.columnNames()); assertEquals(csvFileFixture.expectedFirstLine(), fileInput.next()); assertEquals(csvFileFixture.expectedSecondLine(), fileInput.next()); RelationalInput csv2 = generator.generateNewCopy(); assertEquals(csvFileFixture.expectedHeader(), fileInput.columnNames()); assertEquals(csvFileFixture.expectedFirstLine(), csv2.next()); assertEquals(csvFileFixture.expectedSecondLine(), csv2.next()); }