@@ -184,6 +184,21 @@ public void emitExceptionWhenEntityLengthNot5() {
184
184
encoder .startEntity ("123456" );
185
185
}
186
186
187
+ private void createRecordWithLeader (final String id , final String ... leader ) {
188
+ encoder .startRecord (id );
189
+ encoder .startEntity (Marc21EventNames .LEADER_ENTITY );
190
+ encoder .literal (Marc21EventNames .RECORD_STATUS_LITERAL , leader [0 ]);
191
+ encoder .literal (Marc21EventNames .RECORD_TYPE_LITERAL , leader [1 ]);
192
+ encoder .literal (Marc21EventNames .BIBLIOGRAPHIC_LEVEL_LITERAL , leader [2 ]);
193
+ encoder .literal (Marc21EventNames .TYPE_OF_CONTROL_LITERAL , leader [3 ]);
194
+ encoder .literal (Marc21EventNames .CHARACTER_CODING_LITERAL , leader [4 ]);
195
+ encoder .literal (Marc21EventNames .ENCODING_LEVEL_LITERAL , leader [5 ]);
196
+ encoder .literal (Marc21EventNames .CATALOGING_FORM_LITERAL , leader [6 ]);
197
+ encoder .literal (Marc21EventNames .MULTIPART_LEVEL_LITERAL , leader [7 ]);
198
+ encoder .endEntity ();
199
+ encoder .endRecord ();
200
+ }
201
+
187
202
@ Test
188
203
public void createRecordWithLeader () {
189
204
encoder .startRecord ("1" );
@@ -242,33 +257,20 @@ private void issue336_createRecordWithTopLevelLeader(final MarcXmlEncoder encode
242
257
243
258
@ Test
244
259
public void issue527_shouldEmitLeaderAlwaysAsWholeString () {
245
- issue527_shouldEmitLeaderAlwaysAsWholeString (encoder );
260
+ createRecordWithLeader ("1" , "a" , "o" , "a" , " " , "a" , "z" , "u" , " " );
261
+ createRecordWithLeader ("2" , "d" , "u" , "m" , " " , "m" , "y" , "#" , " " );
262
+ encoder .closeStream ();
263
+ String expected = XML_DECLARATION + XML_ROOT_OPEN
264
+ + "<marc:record><marc:leader>aoa azu </marc:leader></marc:record>"
265
+ + "<marc:record><marc:leader>dum my# </marc:leader></marc:record>" + XML_MARC_COLLECTION_END_TAG ;
266
+ String actual = resultCollector .toString ();
267
+ assertEquals (expected , actual );
246
268
}
247
269
248
270
@ Test (expected = MissingIdException .class )
249
271
public void issue527_shouldEmitLeaderAlwaysAsWholeString_ensureCorrectMarc21Xml () {
250
272
encoder .setEnsureCorrectMarc21Xml (true );
251
- issue527_shouldEmitLeaderAlwaysAsWholeString (encoder );
252
- }
253
-
254
- private void issue527_shouldEmitLeaderAlwaysAsWholeString (final MarcXmlEncoder encoder ) {
255
- encoder .startRecord ("1" );
256
- encoder .startEntity (Marc21EventNames .LEADER_ENTITY );
257
- encoder .literal (Marc21EventNames .RECORD_STATUS_LITERAL , "a" );
258
- encoder .literal (Marc21EventNames .RECORD_TYPE_LITERAL , "o" );
259
- encoder .literal (Marc21EventNames .BIBLIOGRAPHIC_LEVEL_LITERAL , "a" );
260
- encoder .literal (Marc21EventNames .TYPE_OF_CONTROL_LITERAL , " " );
261
- encoder .literal (Marc21EventNames .CHARACTER_CODING_LITERAL , "a" );
262
- encoder .literal (Marc21EventNames .ENCODING_LEVEL_LITERAL , "z" );
263
- encoder .literal (Marc21EventNames .CATALOGING_FORM_LITERAL , "u" );
264
- encoder .literal (Marc21EventNames .MULTIPART_LEVEL_LITERAL , " " );
265
- encoder .endEntity ();
266
- encoder .endRecord ();
267
- encoder .closeStream ();
268
- String expected = XML_DECLARATION + XML_ROOT_OPEN
269
- + "<marc:record><marc:leader>aoa azu </marc:leader></marc:record>" + XML_MARC_COLLECTION_END_TAG ;
270
- String actual = resultCollector .toString ();
271
- assertEquals (expected , actual );
273
+ issue527_shouldEmitLeaderAlwaysAsWholeString ();
272
274
}
273
275
274
276
@ Test
0 commit comments