X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Ftest_filter_virt_db.cpp;h=4ec8efc015f2d291933c9f31b10cbac65ff30b02;hb=77dee8966dd1304a0fb8540c3fc68d02dc6ce84a;hp=f62bb409bd030be873b16d2f5e3047c492ed215e;hpb=cf09b1981338f07c333e43e0a2c907012c841c5d;p=metaproxy-moved-to-github.git diff --git a/src/test_filter_virt_db.cpp b/src/test_filter_virt_db.cpp index f62bb40..4ec8efc 100644 --- a/src/test_filter_virt_db.cpp +++ b/src/test_filter_virt_db.cpp @@ -1,4 +1,4 @@ -/* $Id: test_filter_virt_db.cpp,v 1.2 2005-10-25 11:48:30 adam Exp $ +/* $Id: test_filter_virt_db.cpp,v 1.9 2005-12-02 12:21:07 adam Exp $ Copyright (c) 2005, Index Data. %LICENSE% @@ -8,11 +8,12 @@ #include #include +#include "util.hpp" #include "filter_virt_db.hpp" #include "filter_backend_test.hpp" #include "filter_log.hpp" -#include "router.hpp" +#include "router_chain.hpp" #include "session.hpp" #include "package.hpp" @@ -25,7 +26,7 @@ using namespace boost::unit_test; -BOOST_AUTO_TEST_CASE( test_filter_virt_db_1 ) +BOOST_AUTO_UNIT_TEST( test_filter_virt_db_1 ) { try { @@ -36,7 +37,7 @@ BOOST_AUTO_TEST_CASE( test_filter_virt_db_1 ) } } -BOOST_AUTO_TEST_CASE( test_filter_virt_db_2 ) +BOOST_AUTO_UNIT_TEST( test_filter_virt_db_2 ) { try { @@ -44,20 +45,19 @@ BOOST_AUTO_TEST_CASE( test_filter_virt_db_2 ) yp2::filter::Virt_db vdb; - router.rule(vdb); + router.append(vdb); // Create package with Z39.50 init request in it // Since there is not vhost given, the virt will make its // own init response (regardless of backend) yp2::Package pack; - ODR odr = odr_createmem(ODR_ENCODE); + yp2::odr odr; Z_APDU *apdu = zget_APDU(odr, Z_APDU_initRequest); BOOST_CHECK(apdu); pack.request() = apdu; - odr_destroy(odr); // Put it in router pack.router(router).move(); @@ -83,7 +83,7 @@ BOOST_AUTO_TEST_CASE( test_filter_virt_db_2 ) static void init(yp2::Package &pack, yp2::Router &router) { // Create package with Z39.50 init request in it - ODR odr = odr_createmem(ODR_ENCODE); + yp2::odr odr; Z_APDU *apdu = zget_APDU(odr, Z_APDU_initRequest); BOOST_CHECK(apdu); @@ -91,7 +91,6 @@ static void init(yp2::Package &pack, yp2::Router &router) return; pack.request() = apdu; - odr_destroy(odr); // Put it in router pack.router(router).move(); @@ -110,27 +109,17 @@ static void init(yp2::Package &pack, yp2::Router &router) } static void search(yp2::Package &pack, yp2::Router &router, - const char *pqf_query, const char *db, + const std::string &query, const char *db, const char *setname) { // Create package with Z39.50 search request in it - ODR odr = odr_createmem(ODR_ENCODE); + yp2::odr odr; Z_APDU *apdu = zget_APDU(odr, Z_APDU_searchRequest); - - YAZ_PQF_Parser pqf_parser = yaz_pqf_create(); - - Z_RPNQuery *rpn = yaz_pqf_parse(pqf_parser, odr, pqf_query); - BOOST_CHECK(rpn); - if (!rpn) - return; - Z_Query query; - query.which = Z_Query_type_1; - query.u.type_1 = rpn; - - apdu->u.searchRequest->resultSetName = odr_strdup(odr, setname); - apdu->u.searchRequest->query = &query; + yp2::util::pqf(odr, apdu, query); + + apdu->u.searchRequest->resultSetName = odr_strdup(odr, setname); apdu->u.searchRequest->num_databaseNames = 1; apdu->u.searchRequest->databaseNames = (char**) @@ -143,8 +132,6 @@ static void search(yp2::Package &pack, yp2::Router &router, pack.request() = apdu; - odr_destroy(odr); - Z_GDU *gdu_test = pack.request().get(); BOOST_CHECK(gdu_test); @@ -170,7 +157,7 @@ static void present(yp2::Package &pack, yp2::Router &router, { // Create package with Z39.50 present request in it - ODR odr = odr_createmem(ODR_ENCODE); + yp2::odr odr; Z_APDU *apdu = zget_APDU(odr, Z_APDU_presentRequest); apdu->u.presentRequest->resultSetId = odr_strdup(odr, setname); @@ -183,8 +170,6 @@ static void present(yp2::Package &pack, yp2::Router &router, pack.request() = apdu; - odr_destroy(odr); - Z_GDU *gdu_test = pack.request().get(); BOOST_CHECK(gdu_test); @@ -204,28 +189,26 @@ static void present(yp2::Package &pack, yp2::Router &router, BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_presentResponse); } -BOOST_AUTO_TEST_CASE( test_filter_virt_db_3 ) +BOOST_AUTO_UNIT_TEST( test_filter_virt_db_3 ) { try { yp2::RouterChain router; + yp2::filter::Log filter_log1("FRONT"); #if 0 - yp2::filter::Log filter_log1; - filter_log1.set_prefix("FRONT"); - router.rule(filter_log1); + router.append(filter_log1); #endif yp2::filter::Virt_db vdb; - router.rule(vdb); + router.append(vdb); vdb.add_map_db2vhost("Default", "localhost:210"); + yp2::filter::Log filter_log2("BACK"); #if 0 - yp2::filter::Log filter_log2; - filter_log2.set_prefix("BACK"); - router.rule(filter_log2); + router.append(filter_log2); #endif yp2::filter::Backend_test btest; - router.rule(btest); + router.append(btest); yp2::Session session1; yp2::Origin origin1;