X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftest_filter_query_rewrite.cpp;h=0fe19a29834ea5509469e5d4c0af5dd8f7bf3e36;hb=743341841a21a695d08c99b27a30329119030db5;hp=82088907f999b828b49b789f0927fc3a60ae9714;hpb=841ef7fe461a9bb88240e30991c1fcb029ce69f9;p=metaproxy-moved-to-github.git diff --git a/src/test_filter_query_rewrite.cpp b/src/test_filter_query_rewrite.cpp index 8208890..0fe19a2 100644 --- a/src/test_filter_query_rewrite.cpp +++ b/src/test_filter_query_rewrite.cpp @@ -1,4 +1,4 @@ -/* $Id: test_filter_query_rewrite.cpp,v 1.1 2006-01-19 12:18:09 marc Exp $ +/* $Id: test_filter_query_rewrite.cpp,v 1.2 2006-01-20 22:38:12 marc Exp $ Copyright (c) 2005, Index Data. %LICENSE% @@ -30,8 +30,8 @@ public: Z_GDU *gdu = package.request().get(); - if (gdu && gdu->which == Z_GDU_Z3950 && gdu->u.z3950->which == - Z_APDU_initRequest) + if (gdu && gdu->which == Z_GDU_Z3950 + && gdu->u.z3950->which == Z_APDU_initRequest) { std::cout << "Got Z3950 Init PDU\n"; //Z_InitRequest *req = gdu->u.z3950->u.initRequest; @@ -58,7 +58,7 @@ public: void check_query_rewrite_init(yp2::RouterChain &router) { - std::cout << "QUERY REWRITE INIT\n"; + //std::cout << "QUERY REWRITE INIT\n"; // Create package with Z39.50 init request in it yp2::Package pack; @@ -78,19 +78,20 @@ void check_query_rewrite_init(yp2::RouterChain &router) Z_GDU *z_gdu = gdu->get(); - std::cout << "Z_GDU " << z_gdu << "\n"; + //std::cout << "Z_GDU " << z_gdu << "\n"; BOOST_CHECK(z_gdu); if (z_gdu) { BOOST_CHECK_EQUAL(z_gdu->which, Z_GDU_Z3950); BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_initRequest); } } + void check_query_rewrite_search(yp2::RouterChain &router, std::string query_in, - std::string query_out) + std::string query_expect) { - std::cout << "QUERY REWRITE SEARCH " - << query_in << " " << query_out << "\n"; + //std::cout << "QUERY REWRITE SEARCH " + // << query_in << " " << query_expect << "\n"; // Create package with Z39.50 search request in it yp2::Package pack; @@ -101,18 +102,17 @@ void check_query_rewrite_search(yp2::RouterChain &router, // create package PQF query here yp2::util::pqf(odr, apdu, query_in); - - //apdu->u.searchRequest->num_databaseNames = 1; - //apdu->u.searchRequest->databaseNames = (char**) - //odr_malloc(odr, sizeof(char *)); - //apdu->u.searchRequest->databaseNames[0] = odr_strdup(odr, "Default"); - + // create package PDF database info (needed!) + apdu->u.searchRequest->num_databaseNames = 1; + apdu->u.searchRequest->databaseNames + = (char**)odr_malloc(odr, sizeof(char *)); + apdu->u.searchRequest->databaseNames[0] = odr_strdup(odr, "Default"); + // Done creating request package pack.request() = apdu; - // Done creating query. // Put it in router - //pack.router(router).move(); + pack.router(router).move(); // Inspect bounced back request //yazpp_1::GDU *gdu = &pack.response(); @@ -121,12 +121,24 @@ void check_query_rewrite_search(yp2::RouterChain &router, Z_GDU *z_gdu = gdu->get(); //std::cout << "Z_GDU " << z_gdu << "\n"; - //BOOST_CHECK(z_gdu); + BOOST_CHECK(z_gdu); if (z_gdu) { BOOST_CHECK_EQUAL(z_gdu->which, Z_GDU_Z3950); BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_searchRequest); - // take query out of package again - BOOST_CHECK_EQUAL(query_in, query_out); + + // take query out of package again and check rewrite + //std::string query_changed = yp2::util::apduToPqf(apdu); + std::string query_changed + = yp2::util::zQueryToString(z_gdu->u.z3950->u.searchRequest->query); + + //BOOST_CHECK_EQUAL(query_in, query_expect); + + //std::cout << "'" << query_expect << "'\n"; + //std::cout << "'" << query_changed << "'\n"; + + // need ugly whitespace here .. + //BOOST_CHECK_EQUAL(query_expect, std::string(" ") + query_changed); + BOOST_CHECK_EQUAL(query_expect, query_changed); } } @@ -155,7 +167,9 @@ BOOST_AUTO_UNIT_TEST( test_filter_query_rewrite2 ) //router.append(f_bounce_z3950); check_query_rewrite_init(router); - check_query_rewrite_search(router, "@attr 1=4 the", "@attr 1=4 the"); + check_query_rewrite_search(router, + "@attrset Bib-1 @attr 1=4 the", + "@attrset Bib-1 @attr 1=4 the"); } catch ( ... ) {