X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=test%2Ftest_record_conv.c;h=dc9bb0c48345232e5001bb3607d66bc211799c0f;hp=1e1d2b0992396a8b2a60c09d3b497e6b84b6b5af;hb=3d95738e1464a966faae513cbaff87e9f9ff2b47;hpb=2729cd06642622e1355f41f947498902e6dde61a diff --git a/test/test_record_conv.c b/test/test_record_conv.c index 1e1d2b0..dc9bb0c 100644 --- a/test/test_record_conv.c +++ b/test/test_record_conv.c @@ -363,7 +363,7 @@ static void tst_convert3(void) " 00077nam a22000498a 4500\n" " 11224466 \n" " \n" - " k" "\xc3" "\xb8" /* oslash in UTF_8 */ + " k" "\xc3" "\xb8" /* oslash in UTF_8 */ "benhavn\n" " \n" "\n" @@ -379,9 +379,22 @@ static void tst_convert3(void) " MLCM 89/00602 (N)\n" " FT MEADE\n" " Copy 1\n" + " \n" + " \n" + " 1\n" + " 2\n" + " 3\n" + " \n" + " \n" + " 1\n" + " 2\n" + " 3\n" + " \n" + " \n" " \n" " \n" " \n" + " 20130129\n" " 1226176\n" " \n" " \n" @@ -425,15 +438,27 @@ static void tst_convert3(void) h->reproductionNote = 0; h->termsUseRepro = 0; h->enumAndChron = 0; - h->num_volumes = 0; + h->num_volumes = 2; h->volumes = 0; + + h->volumes = (Z_Volume **) + nmem_malloc(nmem, 2 * sizeof(Z_Volume *)); + + h->volumes[0] = (Z_Volume *) + nmem_malloc(nmem, sizeof(Z_Volume)); + h->volumes[1] = h->volumes[0]; + + h->volumes[0]->enumeration = nmem_strdup(nmem, "1"); + h->volumes[0]->chronology = nmem_strdup(nmem, "2"); + h->volumes[0]->enumAndChron = nmem_strdup(nmem, "3"); + h->num_circulationData = 1; h->circulationData = (Z_CircRecord **) nmem_malloc(nmem, 1 * sizeof(Z_CircRecord *)); circ = h->circulationData[0] = (Z_CircRecord *) nmem_malloc(nmem, sizeof(Z_CircRecord)); circ->availableNow = nmem_booldup(nmem, 1); - circ->availablityDate = 0; + circ->availablityDate = nmem_strdup(nmem, "20130129"); circ->availableThru = 0; circ->restrictions = 0; circ->itemId = nmem_strdup(nmem, "1226176"); @@ -475,6 +500,44 @@ static void tst_convert3(void) yaz_record_conv_destroy(p); wrbuf_destroy(output_record); } + { + Z_OPACRecord *opac = 0; + yaz_marc_t mt = yaz_marc_create(); + ret = yaz_xml_to_opac(mt, opacxml_rec, strlen(opacxml_rec), + &opac, 0 /* iconv */, nmem, 0); + YAZ_CHECK(ret); + YAZ_CHECK(opac); + + if (opac) + { + WRBUF output_record = wrbuf_alloc(); + char *p; + + yaz_marc_xml(mt, YAZ_MARC_MARCXML); + yaz_opac_decode_wrbuf(mt, opac, output_record); + + /* change MARC size to 00077 from 00078, due to + encoding of the aring (two bytes in UTF-8) */ + p = strstr(wrbuf_buf(output_record), "00078"); + YAZ_CHECK(p); + if (p) + p[4] = '7'; + + ret = strcmp(wrbuf_cstr(output_record), opacxml_rec); + YAZ_CHECK(ret == 0); + if (ret) + { + printf("got-output_record len=%ld: %s\n", + (long) wrbuf_len(output_record), + wrbuf_cstr(output_record)); + printf("output_expect_record len=%ld %s\n", + (long) strlen(opacxml_rec), + opacxml_rec); + } + wrbuf_destroy(output_record); + } + yaz_marc_destroy(mt); + } nmem_destroy(nmem); }