X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Ftest_filter_virt_db.cpp;h=f61f8a2559f8c601b90f6646951a48d5b2153213;hb=1e61b0aa05e2351e33d909f7503eaf936a2d9bb0;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..f61f8a2 100644 --- a/src/test_filter_virt_db.cpp +++ b/src/test_filter_virt_db.cpp @@ -1,18 +1,19 @@ -/* $Id: test_filter_virt_db.cpp,v 1.2 2005-10-25 11:48:30 adam Exp $ - Copyright (c) 2005, Index Data. +/* $Id: test_filter_virt_db.cpp,v 1.13 2006-06-10 14:29:12 adam Exp $ + Copyright (c) 2005-2006, Index Data. -%LICENSE% + See the LICENSE file for details */ #include "config.hpp" #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" @@ -24,40 +25,40 @@ #include using namespace boost::unit_test; +namespace mp = metaproxy_1; -BOOST_AUTO_TEST_CASE( test_filter_virt_db_1 ) +BOOST_AUTO_UNIT_TEST( test_filter_virt_db_1 ) { try { - yp2::filter::Virt_db vdb; + mp::filter::Virt_db vdb; } catch ( ... ) { BOOST_CHECK (false); } } -BOOST_AUTO_TEST_CASE( test_filter_virt_db_2 ) +BOOST_AUTO_UNIT_TEST( test_filter_virt_db_2 ) { try { - yp2::RouterChain router; + mp::RouterChain router; - yp2::filter::Virt_db vdb; + mp::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; + mp::Package pack; - ODR odr = odr_createmem(ODR_ENCODE); + mp::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(); @@ -80,10 +81,10 @@ BOOST_AUTO_TEST_CASE( test_filter_virt_db_2 ) } -static void init(yp2::Package &pack, yp2::Router &router) +static void init(mp::Package &pack, mp::Router &router) { // Create package with Z39.50 init request in it - ODR odr = odr_createmem(ODR_ENCODE); + mp::odr odr; Z_APDU *apdu = zget_APDU(odr, Z_APDU_initRequest); BOOST_CHECK(apdu); @@ -91,7 +92,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(); @@ -109,28 +109,18 @@ static void init(yp2::Package &pack, yp2::Router &router) BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_initResponse); } -static void search(yp2::Package &pack, yp2::Router &router, - const char *pqf_query, const char *db, +static void search(mp::Package &pack, mp::Router &router, + 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); + mp::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; + mp::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 +133,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); @@ -164,13 +152,13 @@ static void search(yp2::Package &pack, yp2::Router &router, BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_searchResponse); } -static void present(yp2::Package &pack, yp2::Router &router, +static void present(mp::Package &pack, mp::Router &router, int start, int number, const char *setname) { // Create package with Z39.50 present request in it - ODR odr = odr_createmem(ODR_ENCODE); + mp::odr odr; Z_APDU *apdu = zget_APDU(odr, Z_APDU_presentRequest); apdu->u.presentRequest->resultSetId = odr_strdup(odr, setname); @@ -183,8 +171,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,49 +190,47 @@ 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; + mp::RouterChain router; + mp::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); - vdb.add_map_db2vhost("Default", "localhost:210"); + mp::filter::Virt_db vdb; + router.append(vdb); + vdb.add_map_db2target("Default", "localhost:210", ""); + mp::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); + mp::filter::Backend_test btest; + router.append(btest); - yp2::Session session1; - yp2::Origin origin1; + mp::Session session1; + mp::Origin origin1; { - yp2::Package pack(session1, origin1); + mp::Package pack(session1, origin1); init(pack, router); } { // search for database for which there is no map - yp2::Package pack(session1, origin1); + mp::Package pack(session1, origin1); search(pack, router, "computer", "bad_database", "default"); } { // search for database for which there a map - yp2::Package pack(session1, origin1); + mp::Package pack(session1, origin1); search(pack, router, "other", "Default", "default"); } { // present from last search - yp2::Package pack(session1, origin1); + mp::Package pack(session1, origin1); present(pack, router, 1, 2, "default"); } }