Skip to content

Commit 75fc837

Browse files
committed
Converted test for UniformSampler to use a mock receiver
1 parent 4790bcd commit 75fc837

File tree

1 file changed

+34
-21
lines changed

1 file changed

+34
-21
lines changed

src/test/java/org/culturegraph/mf/stream/pipe/UniformSamplerTest.java

Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,19 @@
1515
*/
1616
package org.culturegraph.mf.stream.pipe;
1717

18-
import java.util.Arrays;
19-
20-
import org.culturegraph.mf.stream.pipe.ObjectBuffer;
21-
import org.culturegraph.mf.stream.pipe.UniformSampler;
22-
import org.junit.Assert;
23-
import org.junit.Test;
24-
import org.junit.runner.RunWith;
25-
import org.junit.runners.Parameterized;
26-
import org.junit.runners.Parameterized.Parameters;
18+
import static org.mockito.Mockito.inOrder;
19+
20+
import java.util.Arrays;
21+
22+
import org.culturegraph.mf.framework.ObjectReceiver;
23+
import org.junit.Before;
24+
import org.junit.Test;
25+
import org.junit.runner.RunWith;
26+
import org.junit.runners.Parameterized;
27+
import org.junit.runners.Parameterized.Parameters;
28+
import org.mockito.InOrder;
29+
import org.mockito.Mock;
30+
import org.mockito.MockitoAnnotations;
2731

2832

2933
/**
@@ -35,11 +39,16 @@
3539
@RunWith(Parameterized.class)
3640
public final class UniformSamplerTest {
3741

38-
private static final long SEED = 1; // Use a fixed random seed to make the test repeatable.
42+
private static final long SEED = 1; // Use a fixed random seed to make the test repeatable
3943
private static final int SAMPLE_SIZE = 5;
4044

4145
private static final int LARGE_SET = 100;
4246
private static final int SMALL_SET = 3;
47+
48+
private UniformSampler<String> sampler;
49+
50+
@Mock
51+
private ObjectReceiver<String> receiver;
4352

4453
private final int setSize;
4554
private final String[] expected;
@@ -56,24 +65,28 @@ public static Iterable<Object[]> data() {
5665
{ SMALL_SET, new String[] { "0", "1", "2" } },
5766
});
5867
}
68+
69+
@Before
70+
public void setup() {
71+
MockitoAnnotations.initMocks(this);
72+
73+
sampler = new UniformSampler<String>(SAMPLE_SIZE);
74+
sampler.setSeed(SEED);
75+
sampler.setReceiver(receiver);
76+
}
5977

6078
@Test
61-
public void test() {
62-
final UniformSampler<String> sampler = new UniformSampler<String>(SAMPLE_SIZE);
63-
sampler.setSeed(SEED);
64-
final ObjectBuffer<String> buffer = new ObjectBuffer<String>();
65-
66-
sampler.setReceiver(buffer);
67-
79+
public void testShouldEmitARandomSubsetOfTheInputObjects() {
6880
for(int i = 0; i < setSize; ++i) {
6981
sampler.process(Integer.toString(i));
7082
}
7183
sampler.closeStream();
72-
84+
85+
final InOrder ordered = inOrder(receiver);
7386
for(int i = 0; i < expected.length; ++i) {
74-
Assert.assertEquals(expected[i], buffer.pop());
75-
}
76-
Assert.assertNull("The sample contains more than " + expected.length + " records", buffer.pop());
87+
ordered.verify(receiver).process(expected[i]);
88+
}
89+
ordered.verify(receiver).closeStream();
7790
}
7891

7992
}

0 commit comments

Comments
 (0)