Make List type safe. Remove/suppress all warnings.
[marc4j.git] / src / org / marc4j / test / RecordTest.java
1 package org.marc4j.test;\r
2 \r
3 import java.io.InputStream;\r
4 import java.util.List;\r
5 \r
6 import junit.framework.Test;\r
7 import junit.framework.TestCase;\r
8 import junit.framework.TestSuite;\r
9 import junit.textui.TestRunner;\r
10 \r
11 import org.marc4j.MarcReader;\r
12 import org.marc4j.MarcStreamReader;\r
13 import org.marc4j.marc.ControlField;\r
14 import org.marc4j.marc.DataField;\r
15 import org.marc4j.marc.MarcFactory;\r
16 import org.marc4j.marc.Record;\r
17 import org.marc4j.marc.VariableField;\r
18 \r
19 public class RecordTest extends TestCase {\r
20 \r
21     Record record = null;\r
22 \r
23     public void setUp() throws Exception {\r
24         InputStream input = getClass().getResourceAsStream(\r
25                 "resources/summerland.mrc");\r
26         MarcReader reader = new MarcStreamReader(input);\r
27         while (reader.hasNext()) {\r
28             record = reader.next();\r
29         }\r
30         input.close();\r
31     }\r
32 \r
33     public void testGetFields() {\r
34         String cn = record.getControlNumber();\r
35         assertEquals("12883376", cn);\r
36 \r
37         ControlField cf = record.getControlNumberField();\r
38         assertEquals("001", cf.getTag());\r
39         assertEquals("12883376", cf.getData());\r
40 \r
41         List<VariableField> fieldList = record.getVariableFields();\r
42         assertEquals(15, fieldList.size());\r
43 \r
44         List<ControlField> controlList = record.getControlFields();\r
45         assertEquals(3, controlList.size());\r
46 \r
47         List<DataField> dataList = record.getDataFields();\r
48         assertEquals(12, dataList.size());\r
49 \r
50         VariableField field = record.getVariableField("245");\r
51         assertEquals("245", field.getTag());\r
52 \r
53         fieldList = record.getVariableFields("650");\r
54         assertEquals(3, fieldList.size());\r
55 \r
56         String[] fields = { "245", "260", "300" };\r
57         fieldList = record.getVariableFields(fields);\r
58         assertEquals(3, fieldList.size());\r
59     }\r
60 \r
61     @SuppressWarnings("rawtypes")\r
62     public void testFind() throws Exception {\r
63         VariableField field = record.getVariableField("245");\r
64         assertEquals(true, field.find("Summerland"));\r
65         assertEquals(true, field.find("Sum*erland"));\r
66         assertEquals(true, field.find("[Cc]habo[a-z]"));\r
67 \r
68         field = record.getVariableField("008");\r
69         assertEquals(true, field.find("eng"));\r
70 \r
71         List result = record.find("Summerland");\r
72         assertEquals(1, result.size());\r
73         field = (VariableField) result.get(0);\r
74         assertEquals("245", field.getTag());\r
75 \r
76         result = record.find("Chabon");\r
77         assertEquals(2, result.size());\r
78 \r
79         result = record.find("100", "Chabon");\r
80         assertEquals(1, result.size());\r
81 \r
82         String[] tags = { "100", "260", "300" };\r
83         result = record.find(tags, "Chabon");\r
84         assertEquals(1, result.size());\r
85 \r
86         result = record.find("040", "DLC");\r
87         assertTrue(result.size() > 0);\r
88 \r
89         DataField df = (DataField) result.get(0);\r
90         String agency = df.getSubfield('a').getData();\r
91         assertTrue(agency.matches("DLC"));\r
92 \r
93     }\r
94 \r
95     public void testCreateRecord() throws Exception {\r
96         MarcFactory factory = MarcFactory.newInstance();\r
97         Record record = factory.newRecord("00000cam a2200000 a 4500");\r
98         assertEquals("00000cam a2200000 a 4500", record.getLeader().marshal());\r
99 \r
100         record.addVariableField(factory.newControlField("001", "12883376"));\r
101 \r
102         DataField df = factory.newDataField("245", '1', '0');\r
103         df.addSubfield(factory.newSubfield('a', "Summerland /"));\r
104         df.addSubfield(factory.newSubfield('c', "Michael Chabon."));\r
105         record.addVariableField(df);\r
106     }\r
107 \r
108     public void tearDown() {\r
109         record = null;\r
110     }\r
111 \r
112     public static Test suite() {\r
113         return new TestSuite(RecordTest.class);\r
114     }\r
115 \r
116     public static void main(String args[]) {\r
117         TestRunner.run(suite());\r
118     }\r
119 }\r