X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Ftest_filter_factory.cpp;h=6495f96df86a4d9e1489a6719943c0e9dfd077c3;hb=586d78659d671683f33ec55f4a7d32b28e345ccd;hp=4ee69600617b62bbf9de237d3474ed5cb44f7693;hpb=ad428707d2a52bbe4db21e47c5ebb26e13598484;p=metaproxy-moved-to-github.git diff --git a/src/test_filter_factory.cpp b/src/test_filter_factory.cpp index 4ee6960..6495f96 100644 --- a/src/test_filter_factory.cpp +++ b/src/test_filter_factory.cpp @@ -1,85 +1,100 @@ -/* $Id: test_filter_factory.cpp,v 1.9 2006-01-04 11:55:32 adam Exp $ - Copyright (c) 2005, Index Data. - -%LICENSE% - +/* This file is part of Metaproxy. + Copyright (C) Index Data + +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 #include #include "config.hpp" -#include "filter.hpp" -#include "package.hpp" -#include "filter_factory.hpp" +#include +#include +#include "factory_filter.hpp" #define BOOST_AUTO_TEST_MAIN +#define BOOST_TEST_DYN_LINK #include using namespace boost::unit_test; +namespace mp = metaproxy_1; // XFilter -class XFilter: public yp2::filter::Base { +class XFilter: public mp::filter::Base { public: - void process(yp2::Package & package) const; + void process(mp::Package & package) const; + void configure(const xmlNode* ptr, bool test_only, const char *path) {}; }; -void XFilter::process(yp2::Package & package) const +void XFilter::process(mp::Package & package) const { - package.data() = 1; + //package.data() = 1; } -static yp2::filter::Base* xfilter_creator(){ +static mp::filter::Base* xfilter_creator(){ return new XFilter; } // YFilter ... -class YFilter: public yp2::filter::Base { +class YFilter: public mp::filter::Base { public: - void process(yp2::Package & package) const; + void process(mp::Package & package) const; + void configure(const xmlNode* ptr, bool test_only, const char *path) {}; }; -void YFilter::process(yp2::Package & package) const +void YFilter::process(mp::Package & package) const { - package.data() = 2; + //package.data() = 2; } -static yp2::filter::Base* yfilter_creator(){ +static mp::filter::Base* yfilter_creator(){ return new YFilter; } -BOOST_AUTO_UNIT_TEST( test_filter_factory_1 ) +BOOST_AUTO_TEST_CASE( test_filter_factory_1 ) { try { - - yp2::FilterFactory ffactory; - + + mp::FactoryFilter ffactory; + XFilter xf; YFilter yf; const std::string xfid = "XFilter"; const std::string yfid = "YFilter"; - + BOOST_CHECK(ffactory.add_creator(xfid, xfilter_creator)); BOOST_CHECK(ffactory.drop_creator(xfid)); BOOST_CHECK(ffactory.add_creator(xfid, xfilter_creator)); BOOST_CHECK(ffactory.add_creator(yfid, yfilter_creator)); - - yp2::filter::Base* xfilter = 0; + + mp::filter::Base* xfilter = 0; xfilter = ffactory.create(xfid); - yp2::filter::Base* yfilter = 0; + mp::filter::Base* yfilter = 0; yfilter = ffactory.create(yfid); BOOST_CHECK(0 != xfilter); BOOST_CHECK(0 != yfilter); - yp2::Package pack; + mp::Package pack; xfilter->process(pack); - BOOST_CHECK_EQUAL(pack.data(), 1); + //BOOST_CHECK_EQUAL(pack.data(), 1); yfilter->process(pack); - BOOST_CHECK_EQUAL(pack.data(), 2); + //BOOST_CHECK_EQUAL(pack.data(), 2); } catch ( ... ) { throw; @@ -89,27 +104,27 @@ BOOST_AUTO_UNIT_TEST( test_filter_factory_1 ) #if HAVE_DL_SUPPORT #if HAVE_DLFCN_H -BOOST_AUTO_UNIT_TEST( test_filter_factory_2 ) +BOOST_AUTO_TEST_CASE( test_filter_factory_2 ) { - try { - yp2::FilterFactory ffactory; - + try { + mp::FactoryFilter ffactory; + const std::string id = "dl"; - + // first load - BOOST_CHECK(ffactory.add_creator_dyn(id, ".libs")); + BOOST_CHECK(ffactory.add_creator_dl(id, ".libs")); // test double load - BOOST_CHECK(ffactory.add_creator_dyn(id, ".libs")); - - yp2::filter::Base* filter = 0; + BOOST_CHECK(ffactory.add_creator_dl(id, ".libs")); + + mp::filter::Base* filter = 0; filter = ffactory.create(id); BOOST_CHECK(0 != filter); - yp2::Package pack; + mp::Package pack; filter->process(pack); - BOOST_CHECK_EQUAL(pack.data(), 42); // magic from filter_dl .. + //BOOST_CHECK_EQUAL(pack.data(), 42); // magic from filter_dl .. } catch ( ... ) { throw; @@ -122,8 +137,9 @@ BOOST_AUTO_UNIT_TEST( test_filter_factory_2 ) /* * 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 */ +