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(); } }