Skip to content

Commit 767e8d0

Browse files
committed
WIP testen
1 parent 1896c17 commit 767e8d0

File tree

2 files changed

+164
-0
lines changed

2 files changed

+164
-0
lines changed
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
/*package org.metafacture.biblio;
2+
3+
import org.metafacture.framework.ObjectReceiver;
4+
5+
import com.github.tomakehurst.wiremock.client.MappingBuilder;
6+
import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
7+
import com.github.tomakehurst.wiremock.client.WireMock;
8+
import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
9+
import com.github.tomakehurst.wiremock.http.RequestMethod;
10+
import com.github.tomakehurst.wiremock.junit.WireMockRule;
11+
import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder;
12+
import com.github.tomakehurst.wiremock.matching.StringValuePattern;
13+
import com.github.tomakehurst.wiremock.matching.UrlPattern;
14+
import org.junit.Assert;
15+
import org.junit.ComparisonFailure;
16+
import org.junit.Rule;
17+
import org.junit.Test;
18+
import org.mockito.Mock;
19+
import org.mockito.junit.MockitoJUnit;
20+
import org.mockito.junit.MockitoRule;
21+
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 StringBuilder resultCollector = new StringBuilder();
34+
private int resultCollectorsResetStreamCount;
35+
private static final String RESPONSE_BODY = "response bödy"; // UTF-8
36+
private static final String TEST_URL = "/test/path";
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+
// @Test
55+
public void test(){
56+
SruOpener sruOpener = new SruOpener();
57+
sruOpener.setReceiver(new ObjectReceiver<Reader> () {
58+
59+
@Override
60+
public void process(final Reader obj) {
61+
BufferedReader in = new BufferedReader(obj);
62+
String line = null;
63+
StringBuilder rslt = new StringBuilder();
64+
while (true) {
65+
try {
66+
if (!((line = in.readLine()) != null)) break;
67+
}
68+
catch (IOException e) {
69+
throw new RuntimeException(e);
70+
}
71+
rslt.append(line);
72+
}
73+
String result = rslt.toString();
74+
if (result.length() > 768) {
75+
System.out.println(rslt.toString().substring(768, 1024));
76+
}
77+
else System.out.println("Antwort zu klein, gehe von ende der Anzhal der Records aus");
78+
resultCollector.append(obj);
79+
}
80+
81+
@Override
82+
public void resetStream() {
83+
++resultCollectorsResetStreamCount;
84+
}
85+
86+
@Override
87+
public void closeStream() {
88+
89+
}
90+
});
91+
92+
// sruOpener.setQuery("dnb.isil%3DDE-Sol1");
93+
sruOpener.setQuery("WVN%3D24A05");
94+
sruOpener.setRecordSchema("MARC21plus-xml");
95+
sruOpener.setVersion("1.1");
96+
sruOpener.setStartRecord("1890");
97+
sruOpener.setTotal("32");
98+
sruOpener.process("https://services.dnb.de/sru/dnb");
99+
// System.out.println(resultCollector.toString());
100+
}
101+
102+
@Test
103+
public void shouldPerformGetRequestWithInputAsUrlByDefault() throws IOException {
104+
SruOpener sruOpener = new SruOpener();
105+
sruOpener.setQuery("WVN%3D24A05");
106+
sruOpener.setRecordSchema("MARC21plus-xml");
107+
sruOpener.setVersion("1.1");
108+
sruOpener.setStartRecord("1890");
109+
sruOpener.setTotal("32");
110+
shouldPerformRequest(TEST_URL,sruOpener);
111+
}
112+
113+
114+
mach lieber wie in metafix/src/test/java/org/metafacture/metafix/MetafixLookupTest.java wiremock
115+
private void shouldPerformRequest(String input, SruOpener sruOpener) throws IOException { // checkstyle-disable-line ParameterNumber
116+
117+
final BiConsumer<SruOpener, String> consumer;
118+
final Consumer<MappingBuilder> stubConsumer;
119+
final Consumer<RequestPatternBuilder> requestConsumer;
120+
final Consumer<ResponseDefinitionBuilder> responseConsumer = null;
121+
final String responseBody;
122+
final ResponseDefinitionBuilder response = WireMock.ok().withBody(RESPONSE_BODY);
123+
if (responseConsumer != null) {
124+
responseConsumer.accept(response);
125+
}
126+
127+
final String baseUrl = wireMockRule.baseUrl();
128+
final String url = String.format(TEST_URL, baseUrl);
129+
130+
final UrlPattern urlPattern = WireMock.urlPathEqualTo(TEST_URL);
131+
132+
final SruOpener opener = new SruOpener();
133+
opener.setReceiver(receiver);
134+
consumer.accept(opener, url);
135+
136+
final MappingBuilder stub = WireMock.request("GET", urlPattern).willReturn(response);
137+
if (stubConsumer != null) {
138+
stubConsumer.accept(stub);
139+
}
140+
141+
final RequestPatternBuilder request = new RequestPatternBuilder(RequestMethod.fromString("GET"), urlPattern)
142+
.withRequestBody(method.getRequestHasBody() ? WireMock.equalTo(REQUEST_BODY) : WireMock.absent());
143+
if (requestConsumer != null) {
144+
requestConsumer.accept(request);
145+
}
146+
147+
WireMock.stubFor(stub);
148+
149+
opener.process(String.format(input, baseUrl));
150+
151+
// use the opener a second time in a workflow:
152+
opener.process(String.format(input, baseUrl));
153+
154+
opener.closeStream();
155+
156+
157+
WireMock.verify(request);
158+
}
159+
160+
161+
}
162+
*/

metafacture-flux/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ dependencies {
2323
api project(':metafacture-framework')
2424
implementation project(':metafacture-commons')
2525
implementation project(':metafacture-io')
26+
implementation project(':metafacture-biblio')
27+
implementation project(':metafacture-xml')
2628
testRuntimeOnly project(':metafacture-plumbing')
2729
antlr "org.antlr:antlr:${versions.antlr}"
2830
testImplementation "junit:junit:${versions.junit}"

0 commit comments

Comments
 (0)