From 4e6d194a80ae85760471a2fe7568bfaeb18649dd Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 2 Jun 2008 12:35:48 +0200 Subject: [PATCH] Dummy OPAC records has a little more dummy data in it. --- win/makefile | 1 + ztest/Makefile.am | 2 +- ztest/dummy-opac.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++ ztest/ztest.c | 47 +---------------------------- ztest/ztest.h | 2 +- 5 files changed, 89 insertions(+), 48 deletions(-) create mode 100644 ztest/dummy-opac.c diff --git a/win/makefile b/win/makefile index b4cd961..b170a1d 100644 --- a/win/makefile +++ b/win/makefile @@ -330,6 +330,7 @@ YAZ_CLIENT_OBJS= \ YAZ_ICU_OBJS= $(OBJDIR)\yaz-icu.obj ZTEST_OBJS= \ + $(OBJDIR)\dummy-opac.obj \ $(OBJDIR)\read-marc.obj \ $(OBJDIR)\read-grs.obj \ $(OBJDIR)\ztest.obj diff --git a/ztest/Makefile.am b/ztest/Makefile.am index 5a5297f..3028b57 100644 --- a/ztest/Makefile.am +++ b/ztest/Makefile.am @@ -3,7 +3,7 @@ bin_PROGRAMS=yaz-ztest -yaz_ztest_SOURCES=ztest.c read-grs.c read-marc.c ztest.h +yaz_ztest_SOURCES=ztest.c read-grs.c read-marc.c dummy-opac.c ztest.h EXTRA_DIST=dummy-records dummy-words dummy-grs ztest.pem config1.xml diff --git a/ztest/dummy-opac.c b/ztest/dummy-opac.c new file mode 100644 index 0000000..e0ef278 --- /dev/null +++ b/ztest/dummy-opac.c @@ -0,0 +1,85 @@ +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2008 Index Data + * See the file LICENSE for details. + */ + +/** \file + * \brief Little toy-thing to genearate an OPAC record with some values + */ + +#include +#include +#include +#include + +#include "ztest.h" + +Z_OPACRecord *dummy_opac(int num, ODR odr, const char *marc_input) +{ + Z_OPACRecord *rec; + int i; + rec = odr_malloc(odr, sizeof(*rec)); + rec->bibliographicRecord = + z_ext_record_usmarc(odr, marc_input, strlen(marc_input)); + rec->num_holdingsData = 1; + rec->holdingsData = odr_malloc(odr, sizeof(*rec->holdingsData)); + for (i = 0; i < rec->num_holdingsData; i++) + { + Z_HoldingsRecord *hr = odr_malloc(odr, sizeof(*hr)); + Z_HoldingsAndCircData *hc = odr_malloc(odr, sizeof(*hc)); + + rec->holdingsData[i] = hr; + hr->which = Z_HoldingsRecord_holdingsAndCirc; + hr->u.holdingsAndCirc = hc; + + hc->typeOfRecord = "u"; + + hc->encodingLevel = "u"; + + hc->format = 0; /* OPT */ + hc->receiptAcqStatus = "0"; + hc->generalRetention = 0; /* OPT */ + hc->completeness = 0; /* OPT */ + hc->dateOfReport = "000000"; + hc->nucCode = "s-FM/GC"; + hc->localLocation = + "Main or Science/Business Reading Rms - STORED OFFSITE"; + hc->shelvingLocation = 0; /* OPT */ + hc->callNumber = "MLCM 89/00602 (N)"; + hc->shelvingData = "FT MEADE"; + hc->copyNumber = "Copy 1"; + hc->publicNote = 0; /* OPT */ + hc->reproductionNote = 0; /* OPT */ + hc->termsUseRepro = 0; /* OPT */ + hc->enumAndChron = 0; /* OPT */ + + hc->num_volumes = 0; + hc->volumes = 0; + + hc->num_circulationData = 1; + hc->circulationData = odr_malloc(odr, + sizeof(*hc->circulationData)); + hc->circulationData[0] = odr_malloc(odr, + sizeof(**hc->circulationData)); + + hc->circulationData[0]->availableNow = odr_intdup(odr, 1); + hc->circulationData[0]->availablityDate = 0; + hc->circulationData[0]->availableThru = 0; + hc->circulationData[0]->restrictions = 0; + hc->circulationData[0]->itemId = "1226176"; + hc->circulationData[0]->renewable = odr_intdup(odr, 0); + hc->circulationData[0]->onHold = odr_intdup(odr, 0); + hc->circulationData[0]->enumAndChron = 0; + hc->circulationData[0]->midspine = 0; + hc->circulationData[0]->temporaryLocation = 0; + } + return rec; +} +/* + * Local variables: + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ + diff --git a/ztest/ztest.c b/ztest/ztest.c index 1a0579f..76dd459 100644 --- a/ztest/ztest.c +++ b/ztest/ztest.c @@ -535,59 +535,14 @@ int ztest_fetch(void *handle, bend_fetch_rr *r) } else if (!oid_oidcmp(oid, yaz_oid_recsyn_opac)) { - Z_OPACRecord *rec; - int i; cp = dummy_marc_record(r->number, r->stream); if (!cp) { r->errcode = YAZ_BIB1_PRESENT_REQUEST_OUT_OF_RANGE; return 0; } - rec = odr_malloc(r->stream, sizeof(*rec)); - rec->bibliographicRecord = - z_ext_record_usmarc(r->stream, cp, strlen(cp)); - rec->num_holdingsData = 1; - rec->holdingsData = odr_malloc(r->stream, sizeof(*rec->holdingsData)); - for (i = 0; i < rec->num_holdingsData; i++) - { - Z_HoldingsRecord *hr = odr_malloc(r->stream, sizeof(*hr)); - Z_HoldingsAndCircData *hc = odr_malloc(r->stream, sizeof(*hc)); - - rec->holdingsData[i] = hr; - hr->which = Z_HoldingsRecord_holdingsAndCirc; - hr->u.holdingsAndCirc = hc; - - hc->typeOfRecord = odr_strdup(r->stream, "x"); - hc->typeOfRecord[0] = cp[5]; /* LDR 6 */ - - hc->encodingLevel = odr_strdup(r->stream, "x"); - hc->encodingLevel[0] = cp[16]; /* LDR 17 */ - - hc->format = 0; /* OPT */ - hc->receiptAcqStatus = 0; /* OPT */ - hc->generalRetention = 0; /* OPT */ - hc->completeness = 0; /* OPT */ - hc->dateOfReport = 0; /* OPT */ - hc->nucCode = 0; /* OPT */ - hc->localLocation = 0; /* OPT */ - hc->shelvingLocation = 0; /* OPT */ - hc->callNumber = 0; /* OPT */ - hc->shelvingData = 0; /* OPT */ - hc->copyNumber = 0; /* OPT */ - hc->publicNote = 0; /* OPT */ - hc->reproductionNote = 0; /* OPT */ - hc->termsUseRepro = 0; /* OPT */ - hc->enumAndChron = 0; /* OPT */ - - hc->num_volumes = 0; - hc->volumes = 0; - - hc->num_circulationData = 0; - hc->circulationData = 0; - } - + r->record = (char *) dummy_opac(r->number, r->stream, cp); r->len = -1; - r->record = (char*) rec; } else if (!oid_oidcmp(oid, yaz_oid_recsyn_sutrs)) { diff --git a/ztest/ztest.h b/ztest/ztest.h index 5f7f2af..cee958a 100644 --- a/ztest/ztest.h +++ b/ztest/ztest.h @@ -34,7 +34,7 @@ Z_GenericRecord *dummy_grs_record (int num, ODR o); char *dummy_marc_record (int num, ODR odr); char *dummy_xml_record (int num, ODR odr); - +Z_OPACRecord *dummy_opac(int num, ODR odr, const char *marc_input); /* * Local variables: -- 1.7.10.4