34
34
*/
35
35
36
36
public class MarcXmlEncoderTest {
37
- private static StringBuilder resultCollector ;
38
- private static MarcXmlEncoder encoder ;
37
+
39
38
private static final String XML_DECLARATION = "<?xml version=\" 1.0\" encoding=\" UTF-8\" ?>" ;
40
39
private static final String XML_1_DECLARATION = "<?xml version=\" 1.1\" encoding=\" UTF-8\" ?>" ;
41
40
private static final String XML_16_DECLARATION = "<?xml version=\" 1.0\" encoding=\" UTF-16\" ?>" ;
@@ -48,6 +47,9 @@ public class MarcXmlEncoderTest {
48
47
private static final String XML_MARC_COLLECTION_END_TAG = "</marc:collection>" ;
49
48
private static final String RECORD_ID = "92005291" ;
50
49
50
+ private static StringBuilder resultCollector ;
51
+ private static MarcXmlEncoder encoder ;
52
+
51
53
@ Before
52
54
public void setUp () {
53
55
encoder = new MarcXmlEncoder ();
@@ -219,14 +221,60 @@ public void sendAndClearDataWhenOnResetStream() {
219
221
220
222
@ Test
221
223
public void shouldIgnoreNullValueOfLiteral () {
224
+ encoder .startRecord (RECORD_ID );
225
+ encoder .literal ("data" , null );
226
+ encoder .endRecord ();
227
+ encoder .closeStream ();
228
+ String expected = XML_DECLARATION + XML_ROOT_OPEN
229
+ + "<marc:record><marc:controlfield tag=\" data\" ></marc:controlfield></marc:record>"
230
+ + XML_MARC_COLLECTION_END_TAG ;
231
+ String actual = resultCollector .toString ();
232
+ assertEquals (expected , actual );
233
+ }
234
+
235
+ @ Test
236
+ public void shouldIgnoreNullValueOfTypeLiteral () {
222
237
encoder .startRecord (RECORD_ID );
223
238
encoder .literal ("type" , null );
224
239
encoder .endRecord ();
225
240
encoder .closeStream ();
226
241
String expected = XML_DECLARATION + XML_ROOT_OPEN
227
- + "<marc:record><marc:controlfield tag=\" type\" ></marc:controlfield></marc:record>"
242
+ + "<marc:record></marc:record>"
243
+ + XML_MARC_COLLECTION_END_TAG ;
244
+ String actual = resultCollector .toString ();
245
+ assertEquals (expected , actual );
246
+ }
247
+
248
+ @ Test
249
+ public void issue402_shouldEncodeTypeLiteralAsAttribute () {
250
+ encoder .startRecord (RECORD_ID );
251
+ encoder .literal ("type" , "value" );
252
+ encoder .endRecord ();
253
+ encoder .closeStream ();
254
+ String expected = XML_DECLARATION + XML_ROOT_OPEN
255
+ + "<marc:record type=\" value\" ></marc:record>"
228
256
+ XML_MARC_COLLECTION_END_TAG ;
229
257
String actual = resultCollector .toString ();
230
258
assertEquals (expected , actual );
231
259
}
260
+
261
+ @ Test
262
+ public void shouldNotEncodeNestedTypeLiteralAsAttribute () {
263
+ encoder .startRecord (RECORD_ID );
264
+ encoder .startEntity ("tag12" );
265
+ encoder .literal ("type" , "value" );
266
+ encoder .endEntity ();
267
+ encoder .endRecord ();
268
+ encoder .closeStream ();
269
+ String expected = XML_DECLARATION + XML_ROOT_OPEN
270
+ + "<marc:record>"
271
+ + "<marc:datafield tag=\" tag\" ind1=\" 1\" ind2=\" 2\" >"
272
+ + "<marc:subfield code=\" type\" >value</marc:subfield>"
273
+ + "</marc:datafield>"
274
+ + "</marc:record>"
275
+ + XML_MARC_COLLECTION_END_TAG ;
276
+ String actual = resultCollector .toString ();
277
+ assertEquals (expected , actual );
278
+ }
279
+
232
280
}
0 commit comments