Original 2.4
[marc4j.git] / src / org / marc4j / test / RoundtripTest.java
1 package org.marc4j.test;\r
2 \r
3 import java.io.ByteArrayInputStream;\r
4 import java.io.ByteArrayOutputStream;\r
5 import java.io.InputStream;\r
6 \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
11 \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
16 \r
17 public class RoundtripTest extends TestCase {\r
18 \r
19     public void testWriteRead() throws Exception {\r
20 \r
21         int counter = 0;\r
22 \r
23         InputStream input = getClass().getResourceAsStream(\r
24                 "resources/summerland.mrc");\r
25 \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
32             counter++;\r
33         }\r
34         input.close();\r
35         writer.close();\r
36 \r
37         assertEquals(1, counter);\r
38 \r
39         counter = 0;\r
40 \r
41         input = new ByteArrayInputStream(out.toByteArray());\r
42 \r
43         reader = new MarcStreamReader(input);\r
44         while (reader.hasNext()) {\r
45             Record record = reader.next();\r
46             counter++;\r
47         }\r
48         input.close();\r
49 \r
50         assertEquals(1, counter);\r
51     }\r
52 \r
53     public void testWriteReadUtf8() throws Exception {\r
54         InputStream input = getClass().getResourceAsStream(\r
55                 "resources/brkrtest.mrc");\r
56 \r
57         int counter = 0;\r
58 \r
59         MarcStreamReader reader = new MarcStreamReader(input);\r
60         ByteArrayOutputStream out = new ByteArrayOutputStream();\r
61         MarcStreamWriter writer = new MarcStreamWriter(out, "UTF8");\r
62         writer.setConverter(new AnselToUnicode());\r
63         while (reader.hasNext()) {\r
64             Record record = reader.next();\r
65             writer.write(record);\r
66             counter++;\r
67         }\r
68         input.close();\r
69         writer.close();\r
70 \r
71         assertEquals(8, counter);\r
72 \r
73         counter = 0;\r
74 \r
75         input = new ByteArrayInputStream(out.toByteArray());\r
76 \r
77         reader = new MarcStreamReader(input, "UTF8");\r
78 \r
79         while (reader.hasNext()) {\r
80             Record record = reader.next();\r
81             counter++;\r
82         }\r
83         input.close();\r
84 \r
85         assertEquals(8, counter);\r
86     }\r
87 \r
88     public static Test suite() {\r
89         return new TestSuite(RoundtripTest.class);\r
90     }\r
91 \r
92     public static void main(String args[]) {\r
93         TestRunner.run(suite());\r
94     }\r
95 \r
96 }\r