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
+ */
0 commit comments