Add ResultSet#sort
[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
7 public class ConnectionTest {
8
9   @Test
10   public void testConnection() {
11     Connection con = new Connection("z3950.indexdata.dk:210/gils", 0);
12     assertNotNull(con);
13     try {
14       con.setSyntax("sutrs");
15       System.out.println("Open connection to z3950.indexdata.dk:210/gils...");
16       con.connect();
17       ResultSet s = con.search("@attr 1=4 utah",
18         Connection.QueryType.PrefixQuery);
19       System.out.println("Search for 'utah'...");
20       assertNotNull(s);
21       assertEquals(s.getHitCount(), 9);
22       Record rec = s.getRecord(0);
23       assertNotNull(rec);
24       byte[] content = rec.getContent();
25       // first SUTRS record
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..");
31       // read all records
32       int i = 0;
33       for (Record r : s) {
34         assertNotNull(r);
35         System.out.println("Got "+i+" record of type "+r.getSyntax());
36         i++;
37       }
38       System.out.println("Try sorting them...");
39       s.sort("yaz", "1=4 >i 1=21 >s");
40     } catch (ZoomException ze) {
41       fail(ze.getMessage());
42     } finally {
43       con.close();
44     }
45   }
46
47
48   @Test
49   public void unsupportedSyntax() {
50     System.out.println("Open connection to z3950.loc.gov:7090/voyager...");
51     Connection con = new Connection("z3950.loc.gov:7090/voyager", 0);
52     try {
53       System.out.println("Set syntax to 'rusmarc'");
54       con.setSyntax("rusmarc");
55       con.connect();
56       System.out.println("Search for something that exists...");
57       ResultSet set = con.search("@attr 1=7 0253333490",
58         Connection.QueryType.PrefixQuery);
59       System.out.println("Result set size: " + set.getHitCount());
60       System.out.println("Get the first record...");
61       Record rec = set.getRecord(0);
62       if (rec == null) {
63         System.out.println("Record is null");
64       } else {
65         System.out.print(rec.render());
66       }
67     } catch (ZoomException ze) {
68       //fail(ze.getMessage());
69     } finally {
70       con.close();
71     }
72   }
73
74   @Test
75   /**
76    * This only works with local ztest
77    */
78   public void recordError() {
79     Connection con = new Connection("localhost:9999", 0);
80     assertNotNull(con);
81     try {
82       con.setSyntax("postscript");
83       System.out.println("Open connection to localhost:9999...");
84       con.connect();
85       ResultSet s = con.search("100", Connection.QueryType.PrefixQuery);
86       assertNotNull(s);
87       assertEquals(s.getHitCount(), 100);
88       Record rec = s.getRecord(0);
89       fail("We should never get here and get ZoomeException instead");
90     } catch (ZoomException ze) {
91       // we need more specific exceptions here
92       System.out.println(ze.getMessage());
93     } finally {
94       con.close();
95     }
96   }
97
98   @Test
99   public void testScan() {
100     System.out.println("Open connection to z3950cat.bl.uk:9909/BLAC");
101     Connection con = new Connection("z3950cat.bl.uk:9909/BLAC", 0);
102     try {
103       con.connect();
104       con.option("number", "20");
105       ScanSet set = con.scan("@attr 1=21 \"development\"");
106       System.out.println("getSize(): " + set.getSize());
107       assertEquals(20, set.getSize());
108
109     } catch (ZoomException ex) {
110       fail(ex.getMessage());
111     } finally {
112       con.close();
113     }
114   }
115 }