-/* $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%
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;
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;
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;
// 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();
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);
}
}
//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 ( ... ) {