+void YFilter::process(mp::Package & package) const
+{
+ //package.data() = 2;
+}
+
+static mp::filter::Base* yfilter_creator(){
+ return new YFilter;
+}
+
+BOOST_AUTO_TEST_CASE( test_filter_factory_1 )
+{
+ try {
+
+ 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));
+
+ mp::filter::Base* xfilter = 0;
+ xfilter = ffactory.create(xfid);
+ mp::filter::Base* yfilter = 0;
+ yfilter = ffactory.create(yfid);
+
+ BOOST_CHECK(0 != xfilter);
+ BOOST_CHECK(0 != yfilter);
+
+ mp::Package pack;
+ xfilter->process(pack);
+ //BOOST_CHECK_EQUAL(pack.data(), 1);
+
+ yfilter->process(pack);
+ //BOOST_CHECK_EQUAL(pack.data(), 2);
+ }
+ catch ( ... ) {
+ throw;
+ BOOST_CHECK (false);
+ }
+}
+
+#if HAVE_DL_SUPPORT
+#if HAVE_DLFCN_H
+BOOST_AUTO_TEST_CASE( test_filter_factory_2 )