1 package org.marc4j.test;
\r
3 import java.io.ByteArrayInputStream;
\r
4 import java.io.ByteArrayOutputStream;
\r
5 import java.io.InputStream;
\r
7 import junit.framework.Test;
\r
8 import junit.framework.TestCase;
\r
9 import junit.framework.TestSuite;
\r
10 import junit.textui.TestRunner;
\r
12 import org.marc4j.MarcStreamReader;
\r
13 import org.marc4j.MarcStreamWriter;
\r
14 import org.marc4j.converter.impl.AnselToUnicode;
\r
15 import org.marc4j.marc.Record;
\r
17 public class RoundtripTest extends TestCase {
\r
19 public void testWriteRead() throws Exception {
\r
23 InputStream input = getClass().getResourceAsStream(
\r
24 "resources/summerland.mrc");
\r
26 MarcStreamReader reader = new MarcStreamReader(input);
\r
27 ByteArrayOutputStream out = new ByteArrayOutputStream();
\r
28 MarcStreamWriter writer = new MarcStreamWriter(out);
\r
29 while (reader.hasNext()) {
\r
30 Record record = reader.next();
\r
31 writer.write(record);
\r
37 assertEquals(1, counter);
\r
41 input = new ByteArrayInputStream(out.toByteArray());
\r
43 reader = new MarcStreamReader(input);
\r
44 while (reader.hasNext()) {
\r
45 @SuppressWarnings("unused")
\r
46 Record record = reader.next();
\r
51 assertEquals(1, counter);
\r
54 public void testWriteReadUtf8() throws Exception {
\r
55 InputStream input = getClass().getResourceAsStream(
\r
56 "resources/brkrtest.mrc");
\r
60 MarcStreamReader reader = new MarcStreamReader(input);
\r
61 ByteArrayOutputStream out = new ByteArrayOutputStream();
\r
62 MarcStreamWriter writer = new MarcStreamWriter(out, "UTF8");
\r
63 writer.setConverter(new AnselToUnicode());
\r
64 while (reader.hasNext()) {
\r
65 Record record = reader.next();
\r
66 writer.write(record);
\r
72 assertEquals(8, counter);
\r
76 input = new ByteArrayInputStream(out.toByteArray());
\r
78 reader = new MarcStreamReader(input, "UTF8");
\r
80 while (reader.hasNext()) {
\r
81 @SuppressWarnings("unused")
\r
82 Record record = reader.next();
\r
87 assertEquals(8, counter);
\r
90 public static Test suite() {
\r
91 return new TestSuite(RoundtripTest.class);
\r
94 public static void main(String args[]) {
\r
95 TestRunner.run(suite());
\r