Fix Metaproxy stops logging after check config failed MP-590
[metaproxy-moved-to-github.git] / src / test_filter_virt_db.cpp
index 56e82ed..db30cb7 100644 (file)
@@ -1,23 +1,35 @@
-/* $Id: test_filter_virt_db.cpp,v 1.5 2005-10-26 10:21:03 marc Exp $
-   Copyright (c) 2005, Index Data.
+/* This file is part of Metaproxy.
+   Copyright (C) Index Data
 
-%LICENSE%
- */
+Metaproxy is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2, or (at your option) any later
+version.
+
+Metaproxy is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
 
 #include "config.hpp"
 #include <iostream>
 #include <stdexcept>
 
-#include "test_util.hpp"
+#include <metaproxy/util.hpp>
 #include "filter_virt_db.hpp"
 #include "filter_backend_test.hpp"
 #include "filter_log.hpp"
 
-#include "router_chain.hpp"
-#include "session.hpp"
-#include "package.hpp"
+#include <metaproxy/router_chain.hpp>
+#include <metaproxy/package.hpp>
 
 #define BOOST_AUTO_TEST_MAIN
+#define BOOST_TEST_DYN_LINK
 #include <boost/test/auto_unit_test.hpp>
 
 #include <yaz/zgdu.h>
 #include <yaz/otherinfo.h>
 using namespace boost::unit_test;
 
+namespace mp = metaproxy_1;
 
 BOOST_AUTO_TEST_CASE( test_filter_virt_db_1 )
 {
-    try 
+    try
     {
-        yp2::filter::Virt_db vdb;
+        mp::filter::VirtualDB vdb;
     }
     catch ( ... ) {
         BOOST_CHECK (false);
@@ -39,35 +52,34 @@ BOOST_AUTO_TEST_CASE( test_filter_virt_db_1 )
 
 BOOST_AUTO_TEST_CASE( test_filter_virt_db_2 )
 {
-    try 
+    try
     {
-        yp2::RouterChain router;
-        
-        yp2::filter::Virt_db vdb;
-        
-        router.rule(vdb);
-        
+        mp::RouterChain router;
+
+        mp::filter::VirtualDB 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;
-        
-        ODR odr = odr_createmem(ODR_ENCODE);
+        mp::Package pack;
+
+        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(); 
-        
+        pack.router(router).move();
+
         // Inspect that we got Z39.50 init Response OK.
         yazpp_1::GDU *gdu = &pack.response();
-        
-        BOOST_CHECK(!pack.session().is_closed()); 
-        
+
+        BOOST_CHECK(!pack.session().is_closed());
+
         Z_GDU *z_gdu = gdu->get();
         BOOST_CHECK(z_gdu);
         if (z_gdu) {
@@ -81,27 +93,26 @@ 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);
     if (!apdu)
         return;
-    
+
     pack.request() = apdu;
-    odr_destroy(odr);
-    
+
     // Put it in router
-    pack.router(router).move(); 
-    
+    pack.router(router).move();
+
     // Inspect that we got Z39.50 init response
     yazpp_1::GDU *gdu = &pack.response();
-    
-    BOOST_CHECK(!pack.session().is_closed()); 
-    
+
+    BOOST_CHECK(!pack.session().is_closed());
+
     Z_GDU *z_gdu = gdu->get();
     BOOST_CHECK(z_gdu);
     if (!z_gdu)
@@ -109,44 +120,42 @@ static void init(yp2::Package &pack, yp2::Router &router)
     BOOST_CHECK_EQUAL(z_gdu->which, Z_GDU_Z3950);
     BOOST_CHECK_EQUAL(z_gdu->u.z3950->which, Z_APDU_initResponse);
 }
-                 
-static void search(yp2::Package &pack, yp2::Router &router,
+
+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);
 
-    yp2::util::pqf(odr, apdu, 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**)
         odr_malloc(odr, sizeof(char *));
     apdu->u.searchRequest->databaseNames[0] = odr_strdup(odr, db);
-    
+
     BOOST_CHECK(apdu);
     if (!apdu)
         return;
-    
+
     pack.request() = apdu;
-    
-    odr_destroy(odr);
-    
+
     Z_GDU *gdu_test = pack.request().get();
     BOOST_CHECK(gdu_test);
-    
+
     // Put it in router
-    pack.router(router).move(); 
-    
+    pack.router(router).move();
+
     // Inspect that we got Z39.50 search response
     yazpp_1::GDU *gdu = &pack.response();
-    
-    BOOST_CHECK(!pack.session().is_closed()); 
-    
+
+    BOOST_CHECK(!pack.session().is_closed());
+
     Z_GDU *z_gdu = gdu->get();
     BOOST_CHECK(z_gdu);
     if (!z_gdu)
@@ -155,15 +164,15 @@ 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);
     *apdu->u.presentRequest->resultSetStartPoint = start;
     *apdu->u.presentRequest->numberOfRecordsRequested = number;
@@ -171,22 +180,20 @@ static void present(yp2::Package &pack, yp2::Router &router,
     BOOST_CHECK(apdu);
     if (!apdu)
         return;
-    
+
     pack.request() = apdu;
-    
-    odr_destroy(odr);
-    
+
     Z_GDU *gdu_test = pack.request().get();
     BOOST_CHECK(gdu_test);
-    
+
     // Put it in router
-    pack.router(router).move(); 
-    
+    pack.router(router).move();
+
     // Inspect that we got Z39.50 present response
     yazpp_1::GDU *gdu = &pack.response();
-    
-    BOOST_CHECK(!pack.session().is_closed()); 
-    
+
+    BOOST_CHECK(!pack.session().is_closed());
+
     Z_GDU *z_gdu = gdu->get();
     BOOST_CHECK(z_gdu);
     if (!z_gdu)
@@ -197,45 +204,45 @@ static void present(yp2::Package &pack, yp2::Router &router,
 
 BOOST_AUTO_TEST_CASE( test_filter_virt_db_3 )
 {
-    try 
+    try
     {
-        yp2::RouterChain router;
+        mp::RouterChain router;
 
-        yp2::filter::Log filter_log1("FRONT");
+        mp::filter::Log filter_log1("FRONT");
 #if 0
-        router.rule(filter_log1);
+        router.append(filter_log1);
 #endif
-   
-        yp2::filter::Virt_db vdb;        
-        router.rule(vdb);
-        vdb.add_map_db2vhost("Default", "localhost:210");
-        yp2::filter::Log filter_log2("BACK");
+
+        mp::filter::VirtualDB vdb;
+        router.append(vdb);
+        vdb.add_map_db2target("Default", "localhost:210", "");
+        mp::filter::Log filter_log2("BACK");
 #if 0
-        router.rule(filter_log2);
+        router.append(filter_log2);
 #endif
-        yp2::filter::Backend_test btest;
-        router.rule(btest);
+        mp::filter::BackendTest btest;
+        router.append(btest);
+
+        mp::Session session1;
+        mp::Origin origin1;
 
-        yp2::Session session1;
-        yp2::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");
         }
     }
@@ -248,8 +255,9 @@ BOOST_AUTO_TEST_CASE( test_filter_virt_db_3 )
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
- * c-file-style: "stroustrup"
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab
  */
+