Skip to content

Commit 3beb8c4

Browse files
committed
Verify each FileOpener/HttpOpener test "process" individually. (#517)
Instead of only the last one in the case of HttpOpener.
1 parent 83e5d9e commit 3beb8c4

File tree

2 files changed

+14
-21
lines changed

2 files changed

+14
-21
lines changed

metafacture-io/src/test/java/org/metafacture/io/HttpOpenerTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -330,16 +330,14 @@ private void shouldPerformRequest(final String input, final HttpOpener.Method me
330330

331331
WireMock.stubFor(stub);
332332

333-
TestHelpers.assertReader(receiver, responseBody, () -> {
333+
TestHelpers.assertReader(receiver, () -> {
334334
opener.process(String.format(input, baseUrl));
335335

336336
// use the opener a second time in a workflow:
337337
opener.process(String.format(input, baseUrl));
338338

339339
opener.closeStream();
340-
341-
return 2;
342-
});
340+
}, responseBody, responseBody);
343341

344342
WireMock.verify(request);
345343
}

metafacture-io/src/test/java/org/metafacture/io/TestHelpers.java

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,15 @@
2424

2525
import java.io.File;
2626
import java.io.Reader;
27+
import java.util.ArrayList;
28+
import java.util.Arrays;
29+
import java.util.List;
2730
import java.util.function.Consumer;
28-
import java.util.function.IntSupplier;
2931

3032
public final class TestHelpers {
3133

3234
public static void assertFile(final ObjectReceiver<Reader> receiver, final String expected, final File file, final Consumer<FileOpener> consumer) {
33-
assertReader(receiver, expected, () -> {
35+
assertReader(receiver, () -> {
3436
final FileOpener opener = new FileOpener();
3537
if (consumer != null) {
3638
consumer.accept(opener);
@@ -39,25 +41,18 @@ public static void assertFile(final ObjectReceiver<Reader> receiver, final Strin
3941
opener.setReceiver(receiver);
4042
opener.process(file.getAbsolutePath());
4143
opener.closeStream();
42-
43-
return 1;
44-
});
44+
}, expected);
4545
}
4646

47-
public static void assertReader(final ObjectReceiver<Reader> receiver, final String expected, final IntSupplier supplier) {
48-
final StringBuilder sb = new StringBuilder();
49-
50-
Mockito.doAnswer(i -> {
51-
sb.delete(0, sb.length());
52-
sb.append(ResourceUtil.readAll(i.getArgument(0)));
53-
54-
return null;
55-
}).when(receiver).process(Mockito.any(Reader.class));
47+
public static void assertReader(final ObjectReceiver<Reader> receiver, final Runnable runnable, final String... expected) {
48+
final List<String> actual = new ArrayList<>();
49+
Mockito.doAnswer(i -> actual.add(ResourceUtil.readAll(i.getArgument(0)))).when(receiver).process(Mockito.any(Reader.class));
5650

57-
final int times = supplier.getAsInt();
51+
runnable.run();
5852

59-
Mockito.verify(receiver, Mockito.times(times)).process(Mockito.any(Reader.class));
60-
Assert.assertEquals(expected, sb.toString());
53+
Mockito.verify(receiver, Mockito.times(expected.length)).process(Mockito.any(Reader.class));
54+
Arrays.stream(expected).forEach(i -> Assert.assertEquals(i, actual.remove(0)));
55+
Assert.assertEquals(0, actual.size());
6156
}
6257

6358
}

0 commit comments

Comments
 (0)