X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=test%2Ftest_solr.c;h=5f69531dddc8bbcbc67ff78680b87b9ea0412f98;hb=3775cbf69e7cfefce240f69fc43e148d0a64fa60;hp=123d55345e4e3cc524f9848faa213c404126c290;hpb=068c332ae7dc06df7d4e0cc396061651720e9e50;p=yaz-moved-to-github.git
diff --git a/test/test_solr.c b/test/test_solr.c
index 123d553..5f69531 100644
--- a/test/test_solr.c
+++ b/test/test_solr.c
@@ -164,8 +164,8 @@ void tst_decoding(void)
{
#if YAZ_HAVE_XML2
ODR odr = odr_createmem(ODR_DECODE);
-
Z_SRW_searchRetrieveResponse *response;
+
YAZ_CHECK(check_response(
odr,
"\n"
@@ -182,8 +182,150 @@ void tst_decoding(void)
YAZ_CHECK_EQ(response->num_diagnostics, 0);
YAZ_CHECK(response->diagnostics == 0);
YAZ_CHECK(response->nextRecordPosition == 0);
+ YAZ_CHECK(response->facetList == 0);
odr_reset(odr);
+
+ YAZ_CHECK(
+ check_response(
+ odr,
+ ""
+ ""
+ "02"
+ "true"
+ "10"
+ "@attr 1=title solr"
+ "5"
+ "date"
+ "1"
+ ""
+ "Alenius, Hans,"
+ "1937-"
+ ""
+ "1969"
+ " 73857731 "
+ " 73857731 "
+ "book"
+ "book"
+ ""
+ "20 cm."
+ "140, (1) p."
+ "illus."
+ ""
+ ""
+ ""
+ "1969."
+ "Norstedt,"
+ "Stockholm,"
+ "PhotographyArtistic"
+ "Photography, Artistic."
+ "PhotographyArtistic"
+ "(OCoLC)36247690"
+ "Solring.Solring."
+ ""
+ ""
+ "Solring."
+ ""
+ ""
+ ""
+ "50000000004"
+ "44"
+ "3"
+ "", &response));
+#if HAVE_LONG_LONG
+ YAZ_CHECK(*response->numberOfRecords == 91000000000LL);
+#endif
+ YAZ_CHECK_EQ(response->num_records, 1);
+ YAZ_CHECK(response->records);
+ if (response->records)
+ {
+ const char *doc =
+ "Alenius, Hans,"
+ "1937-"
+ ""
+ "1969"
+ " 73857731 "
+ " 73857731 "
+ "book"
+ "book"
+ ""
+ "20 cm."
+ "140, (1) p."
+ "illus."
+ ""
+ ""
+ ""
+ "1969."
+ "Norstedt,"
+ "Stockholm,"
+ "PhotographyArtistic"
+ "Photography, Artistic."
+ "PhotographyArtistic"
+ "(OCoLC)36247690"
+ "Solring.Solring."
+ ""
+ ""
+ "Solring."
+ "";
+
+ Z_SRW_record *record = response->records;
+
+ YAZ_CHECK(record->recordData_len == strlen(doc) &&
+ !memcmp(record->recordData_buf, doc, record->recordData_len));
+ }
+ YAZ_CHECK_EQ(response->num_diagnostics, 0);
+ YAZ_CHECK(response->diagnostics == 0);
+ YAZ_CHECK(response->nextRecordPosition == 0);
+
+ YAZ_CHECK(response->facetList);
+ if (response->facetList)
+ {
+ Z_FacetList *facetList = response->facetList;
+
+ YAZ_CHECK(facetList->num == 1);
+ if (facetList->num == 1)
+ {
+ Z_FacetField *facetField = facetList->elements[0];
+ int i;
+
+ YAZ_CHECK(facetField->num_terms == 5);
+ if (facetField->num_terms == 5)
+ {
+ for (i = 0; i < facetField->num_terms; i++)
+ {
+ YAZ_CHECK(
+ facetField->terms[i] &&
+ facetField->terms[i]->term &&
+ facetField->terms[i]->term->which == Z_Term_general);
+ }
+#if HAVE_LONG_LONG
+ YAZ_CHECK(*facetField->terms[0]->count == 5000000000LL);
+#endif
+ YAZ_CHECK(facetField->terms[0]->term->u.general->len == 4
+ && !memcmp(facetField->terms[0]->term->u.general->buf,
+ "1978", 4));
+ YAZ_CHECK(*facetField->terms[1]->count == 4);
+ YAZ_CHECK(facetField->terms[1]->term->u.general->len == 4
+ && !memcmp(facetField->terms[1]->term->u.general->buf,
+ "1983", 4));
+ YAZ_CHECK(*facetField->terms[2]->count == 4);
+ YAZ_CHECK(facetField->terms[2]->term->u.general->len == 4
+ && !memcmp(facetField->terms[2]->term->u.general->buf,
+ "1987", 4));
+ YAZ_CHECK(*facetField->terms[3]->count == 4);
+ YAZ_CHECK(facetField->terms[3]->term->u.general->len == 4
+ && !memcmp(facetField->terms[3]->term->u.general->buf,
+ "1988", 4));
+ YAZ_CHECK(*facetField->terms[4]->count == 3);
+ YAZ_CHECK(facetField->terms[4]->term->u.general->len == 4
+ && !memcmp(facetField->terms[4]->term->u.general->buf,
+ "2003", 4));
+ }
+ }
+ }
+
+ odr_reset(odr);
+
odr_destroy(odr);
#endif
}