4 import static org.junit.Assert.*;
5 import org.yaz4j.exception.*;
8 public class ConnectionTest {
11 public void testConnection() {
12 Connection con = new Connection("z3950.indexdata.dk:210/gils", 0);
15 con.setSyntax("sutrs");
16 System.out.println("Open connection to z3950.indexdata.dk:210/gils...");
18 ResultSet s = con.search(new PrefixQuery("@attr 1=4 utah"));
19 System.out.println("Search for 'utah'...");
21 assertEquals(s.getHitCount(), 9);
22 Record rec = s.getRecord(0);
24 byte[] content = rec.getContent();
26 assertEquals(content.length, 1940);
27 assertEquals(content[0], 103);
28 assertEquals(rec.getSyntax(), "SUTRS");
29 assertEquals(rec.getDatabase(), "gils");
30 System.out.println("Read all records..");
35 System.out.println("Got "+i+" record of type "+r.getSyntax());
38 System.out.println("Try sorting them...");
39 s.sort("yaz", "1=4 >i 1=21 >s");
40 System.out.println("Try fetching them all at once...");
42 List<Record> all = s.getRecords(0, (int) s.getHitCount());
43 for (Record r : all) {
44 System.out.println("getRecords, rec '"+i+"'"+r.getSyntax());
45 System.out.println(r.render());
48 } catch (ZoomException ze) {
49 fail(ze.getMessage());
56 public void testConnectionDeprecated() {
57 Connection con = new Connection("z3950.indexdata.dk:210/gils", 0);
60 con.setSyntax("sutrs");
61 System.out.println("Open connection to z3950.indexdata.dk:210/gils...");
63 ResultSet s = con.search("@attr 1=4 utah",
64 Connection.QueryType.PrefixQuery);
65 System.out.println("Search for 'utah'...");
67 assertEquals(s.getHitCount(), 9);
68 Record rec = s.getRecord(0);
70 byte[] content = rec.getContent();
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..");
81 System.out.println("Got "+i+" record of type "+r.getSyntax());
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...");
88 List<Record> all = s.getRecords(0, (int) s.getHitCount());
89 for (Record r : all) {
90 System.out.println("getRecords, rec '"+i+"'"+r.getSyntax());
93 } catch (ZoomException ze) {
94 fail(ze.getMessage());
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);
106 System.out.println("Set syntax to 'rusmarc'");
107 con.setSyntax("rusmarc");
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);
116 System.out.println("Record is null");
118 System.out.print(rec.render());
120 } catch (ZoomException ze) {
121 //fail(ze.getMessage());
129 * This only works with local ztest
131 public void recordError() {
132 Connection con = new Connection("localhost:9999", 0);
135 con.setSyntax("postscript");
136 System.out.println("Open connection to localhost:9999...");
138 ResultSet s = con.search("100", Connection.QueryType.PrefixQuery);
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());
152 public void testScan() {
153 System.out.println("Open connection to z3950cat.bl.uk:9909/BLAC");
154 Connection con = new Connection("z3950cat.bl.uk:9909/BLAC", 0);
157 con.option("number", "20");
158 ScanSet set = con.scan("@attr 1=21 \"development\"");
159 System.out.println("getSize(): " + set.getSize());
160 assertEquals(20, set.getSize());
162 } catch (ZoomException ex) {
163 fail(ex.getMessage());