@@ -184,6 +184,21 @@ public void emitExceptionWhenEntityLengthNot5() {
184184 encoder .startEntity ("123456" );
185185 }
186186
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+
187202 @ Test
188203 public void createRecordWithLeader () {
189204 encoder .startRecord ("1" );
@@ -242,33 +257,20 @@ private void issue336_createRecordWithTopLevelLeader(final MarcXmlEncoder encode
242257
243258 @ Test
244259 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 );
246268 }
247269
248270 @ Test (expected = MissingIdException .class )
249271 public void issue527_shouldEmitLeaderAlwaysAsWholeString_ensureCorrectMarc21Xml () {
250272 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 ();
272274 }
273275
274276 @ Test
0 commit comments