Skip to content

Commit 841fae3

Browse files
committed
WIP tests
1 parent 0f049c8 commit 841fae3

File tree

1 file changed

+146
-5
lines changed

1 file changed

+146
-5
lines changed

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

Lines changed: 146 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,153 @@
11
package org.metafacture.io;
22

3-
import org.junit.Test;
3+
import org.junit.*;
4+
import org.metafacture.framework.MetafactureException;
5+
import org.metafacture.framework.ObjectReceiver;
46

5-
public class SruOpenerTest {
7+
import com.github.tomakehurst.wiremock.client.MappingBuilder;
8+
import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
9+
import com.github.tomakehurst.wiremock.client.WireMock;
10+
import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
11+
import com.github.tomakehurst.wiremock.http.RequestMethod;
12+
import com.github.tomakehurst.wiremock.junit.WireMockRule;
13+
import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder;
14+
import com.github.tomakehurst.wiremock.matching.StringValuePattern;
15+
import com.github.tomakehurst.wiremock.matching.UrlPattern;
16+
import org.metafacture.framework.helpers.DefaultObjectPipe;
17+
import org.metafacture.framework.helpers.DefaultObjectReceiver;
18+
import org.mockito.Mock;
19+
import org.mockito.junit.MockitoJUnit;
20+
import org.mockito.junit.MockitoRule;
621

7-
private StringBuilder resultCollector = new StringBuilder();
8-
private int resultCollectorsResetStreamCount;
22+
23+
import java.io.BufferedReader;
24+
import java.io.IOException;
25+
import java.io.Reader;
26+
import java.util.Arrays;
27+
import java.util.function.BiConsumer;
28+
import java.util.function.Consumer;
29+
30+
31+
public final class SruOpenerTest {
32+
33+
private static StringBuilder resultCollector = new StringBuilder();
34+
private static final String RESPONSE_BODY = "response bödy"; // UTF-8
35+
private static final String TEST_URL = "/test/path";
36+
private static SruOpener sruOpener = new SruOpener();
37+
38+
39+
@Rule
40+
public MockitoRule mockitoRule = MockitoJUnit.rule();
41+
42+
@Rule
43+
public WireMockRule wireMockRule = new WireMockRule(WireMockConfiguration.wireMockConfig().
44+
jettyAcceptors(Runtime.getRuntime()
45+
.availableProcessors())
46+
.dynamicPort());
47+
48+
@Mock
49+
private ObjectReceiver<Reader> receiver;
50+
51+
public SruOpenerTest() {
52+
}
53+
54+
@Before
55+
public void setUp() {
56+
sruOpener = new SruOpener();
57+
final char[] buffer = new char[ 1024 * 1024 * 16];
58+
sruOpener.setReceiver(new DefaultObjectPipe<Reader, ObjectReceiver<String>>() {
59+
@Override
60+
public void process(final Reader reader) {
61+
int size;
62+
try {
63+
while ((size = reader.read(buffer)) != -1) {
64+
int offset = 0;
65+
for (int i = 0; i < size; ++i) {
66+
resultCollector.append(buffer, offset, size - offset);
67+
// kraus wieviel zeichen läd es denn ?
68+
offset = i + 1;
69+
}
70+
}
71+
}
72+
catch (final IOException e) {
73+
throw new MetafactureException(e);
74+
}
75+
}
76+
});
77+
}
978

1079

80+
@Test
81+
public void test_(){
82+
83+
// sruOpener.setQuery("dnb.isil%3DDE-Sol1");
84+
sruOpener.setQuery("WVN%3D24A05");
85+
sruOpener.setRecordSchema("MARC21plus-xml");
86+
sruOpener.setVersion("1.1");
87+
sruOpener.setStartRecord("1890");
88+
sruOpener.setMaximumRecords("1");
89+
sruOpener.setTotal("3");
90+
sruOpener.process("https://services.dnb.de/sru/dnb");
91+
System.out.println(resultCollector.toString());
92+
}
93+
94+
/* @Test
95+
public void shouldPerformGetRequestWithInputAsUrlByDefault() throws IOException {
96+
SruOpener sruOpener = new SruOpener();
97+
sruOpener.setQuery("WVN%3D24A05");
98+
sruOpener.setRecordSchema("MARC21plus-xml");
99+
sruOpener.setVersion("1.1");
100+
sruOpener.setStartRecord("1890");
101+
sruOpener.setTotal("32");
102+
shouldPerformRequest(TEST_URL,sruOpener);
103+
}*/
104+
105+
106+
//mach lieber wie in metafix/src/test/java/org/metafacture/metafix/MetafixLookupTest.java wiremock
107+
/* private void shouldPerformRequest(String input, SruOpener sruOpener) throws IOException { // checkstyle-disable-line ParameterNumber
108+
109+
final BiConsumer<SruOpener, String> consumer = null;
110+
final Consumer<MappingBuilder> stubConsumer;
111+
final Consumer<RequestPatternBuilder> requestConsumer;
112+
final Consumer<ResponseDefinitionBuilder> responseConsumer = null;
113+
final String responseBody;
114+
final ResponseDefinitionBuilder response = WireMock.ok().withBody(RESPONSE_BODY);
115+
if (responseConsumer != null) {
116+
responseConsumer.accept(response);
117+
}
118+
119+
final String baseUrl = wireMockRule.baseUrl();
120+
final String url = String.format(TEST_URL, baseUrl);
121+
122+
final UrlPattern urlPattern = WireMock.urlPathEqualTo(TEST_URL);
123+
124+
final SruOpener opener = new SruOpener();
125+
opener.setReceiver(receiver);
126+
final MappingBuilder stub = WireMock.request("GET", urlPattern).willReturn(response);
127+
if (stubConsumer != null) {
128+
stubConsumer.accept(stub);
129+
}
130+
131+
final RequestPatternBuilder request = new RequestPatternBuilder(RequestMethod.fromString("GET"), urlPattern)
132+
.withRequestBody(method.getRequestHasBody() ? WireMock.equalTo(REQUEST_BODY) : WireMock.absent());
133+
if (requestConsumer != null) {
134+
requestConsumer.accept(request);
135+
}
136+
137+
WireMock.stubFor(stub);
138+
139+
opener.process(String.format(input, baseUrl));
140+
141+
// use the opener a second time in a workflow:
142+
opener.process(String.format(input, baseUrl));
143+
144+
opener.closeStream();
145+
146+
147+
WireMock.verify(request);
148+
}
149+
*/
150+
11151
@Test
12152
public void test(){
13153
SruOpener sruOpener = new SruOpener();
@@ -27,7 +167,8 @@ public void process(final XmlReceiver obj) {
27167
}
28168
catch (IOException e) {
29169
throw new RuntimeException(e);
30-
}
170+
}final InOrder ordered = Mockito.inOrder(receiver);
171+
31172
rslt.append(line);
32173
}*/
33174
/* StreamLiteralFormatter streamLiteralFormatter = new StreamLiteralFormatter();

0 commit comments

Comments
 (0)