Use Odr_oid for OIDs. Require YAZ 3.0.2 or later.
[idzebra-moved-to-github.git] / test / api / t16.c
index 4ace1e5..608d510 100644 (file)
@@ -1,5 +1,5 @@
-/* $Id: t16.c,v 1.3 2006-11-16 21:58:55 marc Exp $
-   Copyright (C) 1995-2006
+/* $Id: t16.c,v 1.12 2007-05-08 12:50:05 adam Exp $
+   Copyright (C) 1995-2007
    Index Data ApS
 
 This file is part of the Zebra server.
@@ -33,7 +33,7 @@ const char *myrec[] = {
 #define NUMBER_TO_FETCH_MAX 1000
 
 static ZEBRA_RES fetch_first(ZebraHandle zh, const char *element_set,
-                             oid_value format, ODR odr,
+                             const Odr_oid * format, ODR odr,
                              const char **rec_buf, size_t *rec_len)
 {
     ZebraRetrievalRecord retrievalRecord[1];
@@ -61,10 +61,10 @@ static ZEBRA_RES fetch_first(ZebraHandle zh, const char *element_set,
 }
 
 static ZEBRA_RES fetch_first_compare(ZebraHandle zh, const char *element_set,
-                                     oid_value format, const char *cmp_rec)
+                                     const Odr_oid *format, const char *cmp_rec)
 {
-    const char *rec_buf;
-    size_t rec_len;
+    const char *rec_buf = 0;
+    size_t rec_len = 0;
     ODR odr = odr_createmem(ODR_ENCODE);
     ZEBRA_RES res = fetch_first(zh, element_set, format, odr,
                                 &rec_buf, &rec_len);
@@ -86,7 +86,10 @@ static void tst(int argc, char **argv)
     zint hits;
     ZEBRA_RES res;
     const char * zebra_xml_sysno 
-        = "<record xmlns=\"http://www.indexdata.com/zebra/\" sysno=\"2\" set=\"zebra::meta::sysno\"/>\n";
+        = "<record xmlns=\"http://www.indexdata.com/zebra/\" sysno=\"2\"/>\n";
+
+    const char * zebra_xml_meta 
+        = "<record xmlns=\"http://www.indexdata.com/zebra/\" sysno=\"2\" base=\"Default\" type=\"grs.sgml\" rank=\"0\" size=\"41\" set=\"zebra::meta\"/>\n";
 
     const char * zebra_xml_index_title_p
         = "<record xmlns=\"http://www.indexdata.com/zebra/\" sysno=\"2\" set=\"zebra::index::title:p/\">\n"
@@ -102,25 +105,36 @@ static void tst(int argc, char **argv)
     YAZ_CHECK_EQ(res, ZEBRA_OK);
     YAZ_CHECK_EQ(hits, 1);
     
-    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data", VAL_TEXT_XML,
+    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data", yaz_oid_recsyn_xml,
                                      "mismatch"), ZEBRA_FAIL);
 
-    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data", VAL_SUTRS,
+    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data", yaz_oid_recsyn_sutrs,
                                      myrec[0]), ZEBRA_OK);
 
-    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data", VAL_TEXT_XML,
+    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data", yaz_oid_recsyn_xml,
                                      myrec[0]), ZEBRA_OK);
-
-    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::meta::sysno", VAL_SUTRS,
+    
+    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::meta::sysno", 
+                                     yaz_oid_recsyn_sutrs,
                                      "2"), ZEBRA_OK);
 
-    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::meta::sysno", VAL_TEXT_XML,
+    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::meta::sysno", 
+                                     yaz_oid_recsyn_xml,
                                      zebra_xml_sysno), ZEBRA_OK);
-
-    /* YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::data::index:title:p", 
-                                     VAL_TEXT_XML,
+    
+    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::meta", yaz_oid_recsyn_xml,
+                                     zebra_xml_meta), ZEBRA_OK);
+    
+    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::index::title:p", 
+                                     yaz_oid_recsyn_xml,
                                      zebra_xml_index_title_p), ZEBRA_OK);
-    */
+    
+    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::nonexistent", 
+                                     yaz_oid_recsyn_xml, ""), ZEBRA_OK);
+    
+    YAZ_CHECK_EQ(fetch_first_compare(zh, "zebra::index::nonexistent", 
+                                     yaz_oid_recsyn_xml, ""), ZEBRA_OK);
+    
     YAZ_CHECK(tl_close_down(zh, zs));
 }