src/test/java/org/embulk/input/s3/TestS3FileInputPlugin.java in embulk-input-s3-0.2.3 vs src/test/java/org/embulk/input/s3/TestS3FileInputPlugin.java in embulk-input-s3-0.2.4
- old
+ new
@@ -70,11 +70,13 @@
doReturn(list1).doReturn(list2).when(ol).getObjectSummaries();
doReturn(ol).when(client).listObjects(any(ListObjectsRequest.class));
doReturn("in/file/").doReturn(null).when(ol).getNextMarker();
// It counts only size != 0 files.
- assertEquals(1, S3FileInputPlugin.listS3FilesByPrefix(client, "bucketName", "prefix", Optional.<String>absent()).size());
+ FileList.Builder builder = new FileList.Builder();
+ S3FileInputPlugin.listS3FilesByPrefix(builder, client, "bucketName", "prefix", Optional.<String>absent());
+ assertEquals(1, builder.size());
}
@Test
public void checkLastPath()
{
@@ -88,11 +90,11 @@
ConfigDiff configDiff = plugin.transaction(config, new FileInputPlugin.Control() {
@Override
public List<TaskReport> run(TaskSource taskSource, int taskCount)
{
assertEquals(3, taskCount);
- List<String> files = taskSource.loadTask(S3PluginTask.class).getFiles();
+ List<String> files = fileListToList(taskSource.loadTask(S3PluginTask.class).getFiles());
assertArrayEquals(new String[]{"in/aa/a", "in/aa/b", "in/aa/c"}, files.toArray(new String[files.size()]));
return emptyTaskReports(taskCount);
}
});
@@ -106,16 +108,16 @@
ConfigDiff configDiff = plugin.transaction(config, new FileInputPlugin.Control() {
@Override
public List<TaskReport> run(TaskSource taskSource, int taskCount)
{
assertEquals(0, taskCount);
- assertTrue(taskSource.loadTask(S3PluginTask.class).getFiles().isEmpty());
+ assertTrue(fileListToList(taskSource.loadTask(S3PluginTask.class).getFiles()).isEmpty());
return emptyTaskReports(taskCount);
}
});
- assertFalse(configDiff.has("last_path"));
+ assertEquals(null, configDiff.get(String.class, "last_path", null));
}
{ // if files are empty, keep the previous last_path.
config.set("last_path", "in/bb");
@@ -124,11 +126,11 @@
ConfigDiff configDiff = plugin.transaction(config, new FileInputPlugin.Control() {
@Override
public List<TaskReport> run(TaskSource taskSource, int taskCount) {
assertEquals(0, taskCount);
- assertTrue(taskSource.loadTask(S3PluginTask.class).getFiles().isEmpty());
+ assertTrue(fileListToList(taskSource.loadTask(S3PluginTask.class).getFiles()).isEmpty());
return emptyTaskReports(taskCount);
}
});
assertEquals("in/bb", configDiff.get(String.class, "last_path"));
@@ -141,11 +143,13 @@
{
doReturn(s3object("in/aa/a", "aa")).when(client).getObject(any(GetObjectRequest.class));
doReturn(client).when(plugin).newS3Client(any(PluginTask.class));
PluginTask task = config.loadConfig(plugin.getTaskClass());
- task.setFiles(Arrays.asList(new String[]{"in/aa/a"}));
+ FileList.Builder builder = new FileList.Builder();
+ builder.add("in/aa/a", 100);
+ task.setFiles(builder.build());
StringBuilder sbuf = new StringBuilder();
try (S3FileInput input = (S3FileInput) plugin.open(task.dump(), 0)) {
LineDecoder d = new LineDecoder(input, config.loadConfig(LineDecoder.DecoderTask.class));
while (d.nextFile()) {
@@ -215,7 +219,18 @@
ImmutableList.Builder<TaskReport> reports = new ImmutableList.Builder<>();
for (int i = 0; i < taskCount; i++) {
reports.add(Exec.newTaskReport());
}
return reports.build();
+ }
+
+ private static List<String> fileListToList(FileList list)
+ {
+ ImmutableList.Builder<String> builder = ImmutableList.builder();
+ for (int i=0; i < list.getTaskCount(); i++) {
+ for (String path : list.get(i)) {
+ builder.add(path);
+ }
+ }
+ return builder.build();
}
}