1 /* $Id: test_filter_backend_test.cpp,v 1.8 2006-06-10 14:29:12 adam Exp $
2 Copyright (c) 2005-2006, Index Data.
4 See the LICENSE file for details
12 #include "filter_backend_test.hpp"
13 #include "filter_log.hpp"
15 #include "router_chain.hpp"
16 #include "session.hpp"
17 #include "package.hpp"
20 #include <yaz/pquery.h>
21 #include <yaz/otherinfo.h>
23 #define BOOST_AUTO_TEST_MAIN
24 #include <boost/test/auto_unit_test.hpp>
25 using namespace boost::unit_test;
27 namespace mp = metaproxy_1;
29 BOOST_AUTO_UNIT_TEST( test_filter_backend_test_1 )
33 mp::filter::Backend_test btest;
40 BOOST_AUTO_UNIT_TEST( test_filter_backend_test_2 )
44 mp::RouterChain router;
46 mp::filter::Backend_test btest;
52 Z_APDU *apdu = zget_APDU(odr, Z_APDU_initRequest);
56 pack.request() = apdu;
59 pack.router(router).move();
61 // Inspect that we got Z39.50 init Response OK.
62 yazpp_1::GDU *gdu = &pack.response();
64 BOOST_CHECK(!pack.session().is_closed());
66 Z_GDU *z_gdu = gdu->get();
69 BOOST_CHECK_EQUAL(z_gdu->which, Z_GDU_Z3950);
70 BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_initResponse);
78 BOOST_AUTO_UNIT_TEST( test_filter_backend_test_3 )
82 mp::RouterChain router;
84 mp::filter::Backend_test btest;
89 // send search request as first request.. That should fail with
90 // a close from the backend
92 Z_APDU *apdu = zget_APDU(odr, Z_APDU_searchRequest);
94 mp::util::pqf(odr, apdu, "computer");
96 apdu->u.searchRequest->num_databaseNames = 1;
97 apdu->u.searchRequest->databaseNames = (char**)
98 odr_malloc(odr, sizeof(char *));
99 apdu->u.searchRequest->databaseNames[0] = odr_strdup(odr, "Default");
103 pack.request() = apdu;
106 pack.router(router).move();
108 // Inspect that we got Z39.50 close
109 yazpp_1::GDU *gdu = &pack.response();
111 BOOST_CHECK(pack.session().is_closed());
113 Z_GDU *z_gdu = gdu->get();
116 BOOST_CHECK_EQUAL(z_gdu->which, Z_GDU_Z3950);
117 BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_close);
125 BOOST_AUTO_UNIT_TEST( test_filter_backend_test_4 )
129 mp::RouterChain router;
131 mp::filter::Backend_test btest;
132 router.append(btest);
136 // send present request as first request.. That should fail with
137 // a close from the backend
139 Z_APDU *apdu = zget_APDU(odr, Z_APDU_presentRequest);
143 pack.request() = apdu;
146 pack.router(router).move();
148 // Inspect that we got Z39.50 close
149 yazpp_1::GDU *gdu = &pack.response();
151 BOOST_CHECK(pack.session().is_closed());
153 Z_GDU *z_gdu = gdu->get();
156 BOOST_CHECK_EQUAL(z_gdu->which, Z_GDU_Z3950);
157 BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_close);
169 * indent-tabs-mode: nil
170 * c-file-style: "stroustrup"
172 * vim: shiftwidth=4 tabstop=8 expandtab