### Question:
FileResourceMirror extends ResourceMirror { @Override public <T> SourceDriver<T> createSource(ProcessScript<T> script) throws IOException { File file = getPath(script, DriverScript.Kind.SOURCE); return new FileSourceDriver<>(script.getDataClass(), file); } FileResourceMirror(String name); @Override String getName(); @Override void prepare(GateScript script); @Override SourceDriver<T> createSource(ProcessScript<T> script); @Override DrainDriver<T> createDrain(ProcessScript<T> script); @Override void close();  }### Answer:
@Test public void createSource() throws Exception { File source = folder.newFile("source"); File drain = folder.newFile("drain"); put(source, "Hello", "World!"); try (FileResourceMirror resource = new FileResourceMirror("testing")) { ProcessScript<String> script = script(source, drain); resource.prepare(gate(script)); try (SourceDriver<String> driver = resource.createSource(script)) { driver.prepare(); assertThat(driver.next(), is(true)); assertThat(driver.get(), is("Hello")); assertThat(driver.next(), is(true)); assertThat(driver.get(), is("World!")); assertThat(driver.next(), is(false)); } } }