1 /* $Id: test_filter_backend_test.cpp,v 1.6 2005-12-02 12:21:07 adam Exp $
2 Copyright (c) 2005, Index Data.
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 BOOST_AUTO_UNIT_TEST( test_filter_backend_test_1 )
31 yp2::filter::Backend_test btest;
38 BOOST_AUTO_UNIT_TEST( test_filter_backend_test_2 )
42 yp2::RouterChain router;
44 yp2::filter::Backend_test btest;
50 Z_APDU *apdu = zget_APDU(odr, Z_APDU_initRequest);
54 pack.request() = apdu;
57 pack.router(router).move();
59 // Inspect that we got Z39.50 init Response OK.
60 yazpp_1::GDU *gdu = &pack.response();
62 BOOST_CHECK(!pack.session().is_closed());
64 Z_GDU *z_gdu = gdu->get();
67 BOOST_CHECK_EQUAL(z_gdu->which, Z_GDU_Z3950);
68 BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_initResponse);
76 BOOST_AUTO_UNIT_TEST( test_filter_backend_test_3 )
80 yp2::RouterChain router;
82 yp2::filter::Backend_test btest;
87 // send search request as first request.. That should fail with
88 // a close from the backend
90 Z_APDU *apdu = zget_APDU(odr, Z_APDU_searchRequest);
92 yp2::util::pqf(odr, apdu, "computer");
94 apdu->u.searchRequest->num_databaseNames = 1;
95 apdu->u.searchRequest->databaseNames = (char**)
96 odr_malloc(odr, sizeof(char *));
97 apdu->u.searchRequest->databaseNames[0] = odr_strdup(odr, "Default");
101 pack.request() = apdu;
104 pack.router(router).move();
106 // Inspect that we got Z39.50 close
107 yazpp_1::GDU *gdu = &pack.response();
109 BOOST_CHECK(pack.session().is_closed());
111 Z_GDU *z_gdu = gdu->get();
114 BOOST_CHECK_EQUAL(z_gdu->which, Z_GDU_Z3950);
115 BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_close);
123 BOOST_AUTO_UNIT_TEST( test_filter_backend_test_4 )
127 yp2::RouterChain router;
129 yp2::filter::Backend_test btest;
130 router.append(btest);
134 // send present request as first request.. That should fail with
135 // a close from the backend
137 Z_APDU *apdu = zget_APDU(odr, Z_APDU_presentRequest);
141 pack.request() = apdu;
144 pack.router(router).move();
146 // Inspect that we got Z39.50 close
147 yazpp_1::GDU *gdu = &pack.response();
149 BOOST_CHECK(pack.session().is_closed());
151 Z_GDU *z_gdu = gdu->get();
154 BOOST_CHECK_EQUAL(z_gdu->which, Z_GDU_Z3950);
155 BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_close);
167 * indent-tabs-mode: nil
168 * c-file-style: "stroustrup"
170 * vim: shiftwidth=4 tabstop=8 expandtab