|
15 | 15 | */
|
16 | 16 | package org.culturegraph.mf.stream.pipe;
|
17 | 17 |
|
18 |
| -import org.culturegraph.mf.stream.pipe.ObjectBuffer; |
19 |
| -import org.culturegraph.mf.stream.pipe.StringFilter; |
20 |
| -import org.junit.Assert; |
21 |
| -import org.junit.Before; |
22 |
| -import org.junit.Test; |
| 18 | +import static org.mockito.Mockito.inOrder; |
| 19 | + |
| 20 | +import org.culturegraph.mf.framework.ObjectReceiver; |
| 21 | +import org.junit.After; |
| 22 | +import org.junit.Before; |
| 23 | +import org.junit.Test; |
| 24 | +import org.mockito.InOrder; |
| 25 | +import org.mockito.Mock; |
| 26 | +import org.mockito.MockitoAnnotations; |
23 | 27 |
|
24 | 28 |
|
25 |
| -/** |
| 29 | +/** |
| 30 | + * Tests for {@link StringFilter}. |
| 31 | + * |
26 | 32 | * @author Christoph Böhme
|
27 | 33 | *
|
28 | 34 | */
|
29 | 35 | public final class StringFilterTest {
|
30 | 36 |
|
31 |
| - private static final String[] RECORDS = { "Record 1: Data", "Record 42: Data", "Record 3: Data" }; |
| 37 | + private static final String[] RECORDS = { |
| 38 | + "Record 1: Data", |
| 39 | + "Record 42: Data", |
| 40 | + "Record 3: Data", |
| 41 | + }; |
| 42 | + |
32 | 43 | private static final String PATTERN = "\\d\\d";
|
33 | 44 |
|
34 |
| - private StringFilter filter; |
35 |
| - private ObjectBuffer<String> buffer; |
| 45 | + private StringFilter filter; |
| 46 | + |
| 47 | + @Mock |
| 48 | + private ObjectReceiver<String> receiver; |
36 | 49 |
|
37 | 50 | @Before
|
38 |
| - public void configFlow() { |
| 51 | + public void setup() { |
| 52 | + MockitoAnnotations.initMocks(this); |
| 53 | + |
39 | 54 | filter = new StringFilter(PATTERN);
|
40 |
| - buffer = new ObjectBuffer<String>(); |
41 |
| - filter.setReceiver(buffer); |
| 55 | + filter.setReceiver(receiver); |
| 56 | + } |
| 57 | + |
| 58 | + @After |
| 59 | + public void cleanup() { |
| 60 | + filter.closeStream(); |
42 | 61 | }
|
43 | 62 |
|
44 | 63 | @Test
|
45 |
| - public void testPassMatches() { |
| 64 | + public void testShouldPassMatchingInput() { |
46 | 65 | filter.setPassMatches(true);
|
47 | 66 |
|
48 |
| - processRecords(); |
49 |
| - |
50 |
| - Assert.assertEquals(RECORDS[1], buffer.pop()); |
51 |
| - Assert.assertNull(buffer.pop()); |
| 67 | + filter.process(RECORDS[0]); |
| 68 | + filter.process(RECORDS[1]); |
| 69 | + filter.process(RECORDS[2]); |
| 70 | + |
| 71 | + final InOrder ordered = inOrder(receiver); |
| 72 | + ordered.verify(receiver).process(RECORDS[1]); |
| 73 | + ordered.verifyNoMoreInteractions(); |
52 | 74 | }
|
53 | 75 |
|
54 | 76 | @Test
|
55 |
| - public void testFilterMatches() { |
| 77 | + public void testShouldPassNonMatchingInput() { |
56 | 78 | filter.setPassMatches(false);
|
57 | 79 |
|
58 |
| - processRecords(); |
| 80 | + filter.process(RECORDS[0]); |
| 81 | + filter.process(RECORDS[1]); |
| 82 | + filter.process(RECORDS[2]); |
59 | 83 |
|
60 |
| - Assert.assertEquals(RECORDS[0], buffer.pop()); |
61 |
| - Assert.assertEquals(RECORDS[2], buffer.pop()); |
62 |
| - Assert.assertNull(buffer.pop()); |
63 |
| -} |
64 |
| - |
65 |
| - private void processRecords() { |
66 |
| - filter.process(RECORDS[0]); |
67 |
| - filter.process(RECORDS[1]); |
68 |
| - filter.process(RECORDS[2]); |
69 |
| - filter.closeStream(); |
70 |
| - } |
| 84 | + final InOrder ordered = inOrder(receiver); |
| 85 | + ordered.verify(receiver).process(RECORDS[0]); |
| 86 | + ordered.verify(receiver).process(RECORDS[2]); |
| 87 | + ordered.verifyNoMoreInteractions(); |
| 88 | + } |
| 89 | + |
71 | 90 | }
|
0 commit comments