abeca8f2a894ac9939344bb5995761989f3306a0
[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     } catch (ZoomException ze) {
31       fail(ze.getMessage());
32     } finally {
33       con.close();
34     }
35   }
36
37   @Test
38   public void unsupportedSyntax() {
39     System.out.println("Open connection to z3950.loc.gov:7090/voyager...");
40     Connection con = new Connection("z3950.loc.gov:7090/voyager", 0);
41     try {
42       System.out.println("Set syntax to 'rusmarc'");
43       con.setSyntax("rusmarc");
44       con.connect();
45       System.out.println("Search for something that exists...");
46       ResultSet set = con.search("@attr 1=7 0253333490",
47         Connection.QueryType.PrefixQuery);
48       System.out.println("Result set size: " + set.getHitCount());
49       System.out.println("Get the first record...");
50       Record rec = set.getRecord(0);
51       if (rec == null) {
52         System.out.println("Record is null");
53       } else {
54         System.out.print(rec.render());
55       }
56     } catch (ZoomException ze) {
57       //fail(ze.getMessage());
58     } finally {
59       con.close();
60     }
61   }
62
63   @Test
64   /**
65    * This only works with local ztest
66    */
67   public void recordError() {
68     Connection con = new Connection("localhost:9999", 0);
69     assertNotNull(con);
70     try {
71       con.setSyntax("postscript");
72       System.out.println("Open connection to localhost:9999...");
73       con.connect();
74       ResultSet s = con.search("100", Connection.QueryType.PrefixQuery);
75       assertNotNull(s);
76       assertEquals(s.getHitCount(), 100);
77       Record rec = s.getRecord(0);
78       fail("We should never get here and get ZoomeException instead");
79     } catch (ZoomException ze) {
80       // we need more specific exceptions here
81       System.out.println(ze.getMessage());
82     } finally {
83       con.close();
84     }
85   }
86
87   @Test
88   public void testScan() {
89     System.out.println("Open connection to z3950cat.bl.uk:9909/BLAC");
90     Connection con = new Connection("z3950cat.bl.uk:9909/BLAC", 0);
91     try {
92       con.connect();
93       con.option("number", "20");
94       ScanSet set = con.scan("@attr 1=21 \"development\"");
95       System.out.println("getSize(): " + set.getSize());
96       assertEquals(20, set.getSize());
97
98     } catch (ZoomException ex) {
99       fail(ex.getMessage());
100     } finally {
101       con.close();
102     }
103   }
104 }