1
1
package org .metafacture .io ;
2
2
3
- import org .junit .Test ;
3
+ import org .junit .*;
4
+ import org .metafacture .framework .MetafactureException ;
5
+ import org .metafacture .framework .ObjectReceiver ;
4
6
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 ;
6
21
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
+ }
9
78
10
79
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
+
11
151
@ Test
12
152
public void test (){
13
153
SruOpener sruOpener = new SruOpener ();
@@ -27,7 +167,8 @@ public void process(final XmlReceiver obj) {
27
167
}
28
168
catch (IOException e) {
29
169
throw new RuntimeException(e);
30
- }
170
+ }final InOrder ordered = Mockito.inOrder(receiver);
171
+
31
172
rslt.append(line);
32
173
}*/
33
174
/* StreamLiteralFormatter streamLiteralFormatter = new StreamLiteralFormatter();
0 commit comments