Add ztest based test
[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", Connection.QueryType.PrefixQuery);
18           System.out.println("Search for 'utah'...");
19           assertNotNull(s);
20           assertEquals(s.getSize(), 9);
21           Record rec = s.getRecord(0);
22           assertNotNull(rec);
23           byte[] content = rec.getContent();
24           // first SUTRS record
25           assertEquals(content.length, 1940);
26           assertEquals(content[0], 103);
27           assertEquals(rec.getSyntax(), "SUTRS");
28           assertEquals(rec.getDatabase(), "gils");
29         } catch (ZoomException ze) {
30           fail(ze.getMessage());
31         } finally {
32           con.close();
33         }
34     }
35
36     @Test
37     public void unsupportedSyntax() {
38       System.out.println("Open connection to z3950.loc.gov:7090/voyager...");
39       Connection con = new Connection("z3950.loc.gov:7090/voyager", 0);
40       try {
41         System.out.println("Set syntax to 'rusmarc'");
42         con.setSyntax("rusmarc");
43         con.connect();
44         System.out.println("Search for something that exists...");
45         ResultSet set = con.search("@attr 1=7 0253333490", Connection.QueryType.PrefixQuery);
46         System.out.println("Result set size: " + set.getSize());
47         System.out.println("Get the first record...");
48         Record rec = set.getRecord(0);
49         if (rec == null) {
50           System.out.println("Record is null");
51         } else {
52           System.out.print(rec.render());
53         }
54       } catch (ZoomException ze) {
55         //fail(ze.getMessage());
56       } finally {
57         con.close();
58       }
59     }
60
61     @Test
62     /**
63      * This only works with local ztest
64      */
65     public void recordError() {
66         Connection con = new Connection("localhost:9999", 0);
67         assertNotNull(con);
68         try {
69           con.setSyntax("postscript");
70           System.out.println("Open connection to localhost:9999...");
71           con.connect();
72           ResultSet s = con.search("100", Connection.QueryType.PrefixQuery);
73           assertNotNull(s);
74           assertEquals(s.getSize(), 100);
75           Record rec = s.getRecord(0);
76           fail("We should never get here and get ZoomeException instead");
77         } catch (ZoomException ze) {
78           // we need more specific exceptions here
79           System.out.println(ze.getMessage());
80         } finally {
81           con.close();
82         }
83     }
84 }