16
16
17
17
package org .metafacture .biblio .marc21 ;
18
18
19
- import static org .junit . Assert . assertEquals ;
20
- import static org .junit . Assert . assertTrue ;
19
+ import org .metafacture . framework . MetafactureException ;
20
+ import org .metafacture . framework . helpers . DefaultObjectReceiver ;
21
21
22
- import org .junit .After ;
23
22
import org .junit .Before ;
24
23
import org .junit .Test ;
25
- import org .metafacture .framework .MetafactureException ;
26
- import org .metafacture .framework .helpers .DefaultObjectReceiver ;
24
+
25
+ import static org .junit .Assert .assertEquals ;
26
+ import static org .junit .Assert .assertTrue ;
27
27
28
28
/**
29
29
* Tests for class {@link MarcXmlEncoder}.
@@ -63,11 +63,7 @@ public void process(final String obj) {
63
63
resultCollector = new StringBuilder ();
64
64
}
65
65
66
- @ After
67
- public void tearDown () {
68
- }
69
-
70
- private void addOneRecord (MarcXmlEncoder encoder ) {
66
+ private void addOneRecord (final MarcXmlEncoder encoder ) {
71
67
encoder .startRecord (RECORD_ID );
72
68
encoder .literal ("001" , RECORD_ID );
73
69
encoder .startEntity ("010 " );
@@ -201,7 +197,7 @@ public void createAnRecordWithLeader() {
201
197
}
202
198
203
199
@ Test
204
- public void issue336_createRecordWithTopLevelLeader () {
200
+ public void issue336_createRecordWithTopLevelLeader_dummy () {
205
201
encoder .startRecord ("1" );
206
202
encoder .literal (Marc21EventNames .LEADER_ENTITY , "dummy" );
207
203
encoder .endRecord ();
@@ -212,6 +208,49 @@ public void issue336_createRecordWithTopLevelLeader() {
212
208
assertEquals (expected , actual );
213
209
}
214
210
211
+ @ Test
212
+ public void issue336_createRecordWithTopLevelLeader_defaultMarc21Xml () {
213
+ issue336_createRecordWithTopLevelLeader (encoder , "00000naa a2200000uc 4500" );
214
+ }
215
+
216
+ private void issue336_createRecordWithTopLevelLeader (final MarcXmlEncoder encoder , final String expectedLeader ) {
217
+ encoder .startRecord ("1" );
218
+ encoder .literal ("001" , "8u3287432" );
219
+ encoder .literal (Marc21EventNames .LEADER_ENTITY , "00000naa a2200000uc 4500" );
220
+ encoder .endRecord ();
221
+ encoder .closeStream ();
222
+ String expected = XML_DECLARATION + XML_ROOT_OPEN
223
+ + "<marc:record><marc:controlfield tag=\" 001\" >8u3287432</marc:controlfield>" +
224
+ "<marc:leader>" + expectedLeader + "</marc:leader></marc:record>" + XML_MARC_COLLECTION_END_TAG ;
225
+ String actual = resultCollector .toString ();
226
+ assertEquals (expected , actual );
227
+ }
228
+
229
+ @ Test
230
+ public void issue527_shouldEmitLeaderAlwaysAsWholeString () {
231
+ issue527_shouldEmitLeaderAlwaysAsWholeString (encoder );
232
+ }
233
+
234
+ private void issue527_shouldEmitLeaderAlwaysAsWholeString (final MarcXmlEncoder encoder ) {
235
+ encoder .startRecord ("1" );
236
+ encoder .startEntity (Marc21EventNames .LEADER_ENTITY );
237
+ encoder .literal (Marc21EventNames .RECORD_STATUS_LITERAL , "a" );
238
+ encoder .literal (Marc21EventNames .RECORD_TYPE_LITERAL , "o" );
239
+ encoder .literal (Marc21EventNames .BIBLIOGRAPHIC_LEVEL_LITERAL , "a" );
240
+ encoder .literal (Marc21EventNames .TYPE_OF_CONTROL_LITERAL , " " );
241
+ encoder .literal (Marc21EventNames .CHARACTER_CODING_LITERAL , "a" );
242
+ encoder .literal (Marc21EventNames .ENCODING_LEVEL_LITERAL , "z" );
243
+ encoder .literal (Marc21EventNames .CATALOGING_FORM_LITERAL , "u" );
244
+ encoder .literal (Marc21EventNames .MULTIPART_LEVEL_LITERAL , " " );
245
+ encoder .endEntity ();
246
+ encoder .endRecord ();
247
+ encoder .closeStream ();
248
+ String expected = XML_DECLARATION + XML_ROOT_OPEN
249
+ + "<marc:record><marc:leader>aoa azu </marc:leader></marc:record>" + XML_MARC_COLLECTION_END_TAG ;
250
+ String actual = resultCollector .toString ();
251
+ assertEquals (expected , actual );
252
+ }
253
+
215
254
@ Test
216
255
public void sendDataAndClearWhenRecordStartedAndStreamResets () {
217
256
encoder .startRecord ("1" );
0 commit comments