X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=test%2Ftest_solr.c;h=5f69531dddc8bbcbc67ff78680b87b9ea0412f98;hp=123d55345e4e3cc524f9848faa213c404126c290;hb=3add35fb1972e98b5f8922bd1c6f1985b4540009;hpb=068c332ae7dc06df7d4e0cc396061651720e9e50 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 }