56198f041718a93ea5cc391b5fe89c1ea2670c63
[yaz4j-moved-to-github.git] / src / test / org / yaz4j / ConnectionTest.java
1 package org.yaz4j;
2
3 import org.junit.*;
4 import static org.junit.Assert.*;
5 import org.yaz4j.exception.*;
6 import java.util.List;
7
8 @SuppressWarnings("deprecation")
9 public class ConnectionTest {
10   
11   @Test
12   public void testConnection() {
13     Connection con = new Connection("z3950.indexdata.dk:210/gils", 0);
14     assertNotNull(con);
15     try {
16       con.setSyntax("sutrs");
17       System.out.println("Open connection to z3950.indexdata.dk:210/gils...");
18       con.connect();
19       ResultSet s = con.search(new PrefixQuery("@attr 1=4 utah"));
20       System.out.println("Search for 'utah'...");
21       assertNotNull(s);
22       assertEquals(s.getHitCount(), 9);
23       Record rec = s.getRecord(0);
24       assertNotNull(rec);
25       byte[] content = rec.getContent();
26       // first SUTRS record
27       assertEquals(content.length, 1940);
28       assertEquals(content[0], 103);
29       assertEquals(rec.getSyntax(), "SUTRS");
30       assertEquals(rec.getDatabase(), "gils");
31       System.out.println("Read all records..");
32       // read all records
33       int i = 0;
34       for (Record r : s) {
35         assertNotNull(r);
36         System.out.println("Got "+i+" record of type "+r.getSyntax());
37         i++;
38       }
39       System.out.println("Try sorting them...");
40       s.sort("yaz", "1=4 >i 1=21 >s");
41       System.out.println("Try fetching them all at once...");
42       i = 0;
43       List<Record> all = s.getRecords(0, (int) s.getHitCount());
44       for (Record r : all) {
45         System.out.println("getRecords, rec '"+i+"'"+r.getSyntax());
46         i++;
47       }
48     } catch (ZoomException ze) {
49       fail(ze.getMessage());
50     } finally {
51       con.close();
52     }
53   }
54
55   @Test
56   public void testConnectionDeprecated() {
57     Connection con = new Connection("z3950.indexdata.dk:210/gils", 0);
58     assertNotNull(con);
59     try {
60       con.setSyntax("sutrs");
61       System.out.println("Open connection to z3950.indexdata.dk:210/gils...");
62       con.connect();
63       ResultSet s = con.search("@attr 1=4 utah",
64         Connection.QueryType.PrefixQuery);
65       System.out.println("Search for 'utah'...");
66       assertNotNull(s);
67       assertEquals(s.getHitCount(), 9);
68       Record rec = s.getRecord(0);
69       assertNotNull(rec);
70       byte[] content = rec.getContent();
71       // first SUTRS record
72       assertEquals(content.length, 1940);
73       assertEquals(content[0], 103);
74       assertEquals(rec.getSyntax(), "SUTRS");
75       assertEquals(rec.getDatabase(), "gils");
76       System.out.println("Read all records..");
77       // read all records
78       int i = 0;
79       for (Record r : s) {
80         assertNotNull(r);
81         System.out.println("Got "+i+" record of type "+r.getSyntax());
82         i++;
83       }
84       System.out.println("Try sorting them...");
85       s.sort("yaz", "1=4 >i 1=21 >s");
86       System.out.println("Try fetching them all at once...");
87       i = 0;
88       List<Record> all = s.getRecords(0, (int) s.getHitCount());
89       for (Record r : all) {
90         System.out.println("getRecords, rec '"+i+"'"+r.getSyntax());
91         i++;
92       }
93     } catch (ZoomException ze) {
94       fail(ze.getMessage());
95     } finally {
96       con.close();
97     }
98   }
99
100
101   @Test
102   public void unsupportedSyntax() {
103     System.out.println("Open connection to z3950.loc.gov:7090/voyager...");
104     Connection con = new Connection("z3950.loc.gov:7090/voyager", 0);
105     try {
106       System.out.println("Set syntax to 'rusmarc'");
107       con.setSyntax("rusmarc");
108       con.connect();
109       System.out.println("Search for something that exists...");
110       ResultSet set = con.search("@attr 1=7 0253333490",
111         Connection.QueryType.PrefixQuery);
112       System.out.println("Result set size: " + set.getHitCount());
113       System.out.println("Get the first record...");
114       Record rec = set.getRecord(0);
115       if (rec == null) {
116         System.out.println("Record is null");
117       } else {
118         System.out.print(rec.render());
119       }
120     } catch (ZoomException ze) {
121       //fail(ze.getMessage());
122     } finally {
123       con.close();
124     }
125   }
126
127   @Test
128   /**
129    * This only works with local ztest
130    */
131   public void recordError() {
132     Connection con = new Connection("localhost:9999", 0);
133     assertNotNull(con);
134     try {
135       con.setSyntax("postscript");
136       System.out.println("Open connection to localhost:9999...");
137       con.connect();
138       ResultSet s = con.search("100", Connection.QueryType.PrefixQuery);
139       assertNotNull(s);
140       assertEquals(s.getHitCount(), 100);
141       Record rec = s.getRecord(0);
142       fail("We should never get here and get ZoomeException instead");
143     } catch (ZoomException ze) {
144       // we need more specific exceptions here
145       System.out.println(ze.getMessage());
146     } finally {
147       con.close();
148     }
149   }
150   
151 }