X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Ftest_router_flexml.cpp;h=55425c09b2ced0101e0e3e6a297fb01deb5ae795;hb=316a09389138ec5d375b73594fef4dc2d0bf1509;hp=05d7b845ce71c17688a629cc51a2f31631e191fa;hpb=48f4e384860829966eacf4881fbf1ccbed38be6a;p=metaproxy-moved-to-github.git
diff --git a/src/test_router_flexml.cpp b/src/test_router_flexml.cpp
index 05d7b84..55425c0 100644
--- a/src/test_router_flexml.cpp
+++ b/src/test_router_flexml.cpp
@@ -1,7 +1,7 @@
-/* $Id: test_router_flexml.cpp,v 1.10 2006-01-04 14:15:45 adam Exp $
- Copyright (c) 2005, Index Data.
+/* $Id: test_router_flexml.cpp,v 1.18 2006-11-29 13:00:54 marc Exp $
+ Copyright (c) 2005-2006, Index Data.
-%LICENSE%
+ See the LICENSE file for details
*/
#include "config.hpp"
@@ -17,50 +17,58 @@
using namespace boost::unit_test;
-static bool tfilter_destroyed = false;
-class TFilter: public yp2::filter::Base {
+namespace mp = metaproxy_1;
+
+static int tfilter_ref = 0;
+class TFilter: public mp::filter::Base {
public:
- void process(yp2::Package & package) const {};
- ~TFilter() { tfilter_destroyed = true; };
+ void process(mp::Package & package) const {};
+ TFilter() { tfilter_ref++; };
+ ~TFilter() { tfilter_ref--; };
};
-static yp2::filter::Base* filter_creator()
+static mp::filter::Base* filter_creator()
{
return new TFilter;
}
+// Pass well-formed XML and valid configuration to it (implicit NS)
BOOST_AUTO_UNIT_TEST( test_router_flexml_1 )
{
try
{
std::string xmlconf = "\n"
- "\n"
+ "\n"
" \n"
" \n"
" \n"
- " 210\n"
+ " @:210\n"
" \n"
" \n"
- " mylog1.log\n"
- " \n"
- " \n"
- " \n"
+ " my msg\n"
" \n"
+ " \n"
" \n"
- " mylog2.log\n"
+ " other\n"
" \n"
" \n"
" \n"
" \n"
" \n"
- " \n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
" \n"
" \n"
- "\n";
+ "\n";
- yp2::FactoryStatic factory;
+ mp::FactoryStatic factory;
factory.add_creator("tfilter", filter_creator);
- yp2::RouterFleXML rflexml(xmlconf, factory);
+ mp::RouterFleXML rflexml(xmlconf, factory);
+ BOOST_CHECK_EQUAL(tfilter_ref, 2);
}
catch ( std::runtime_error &e) {
std::cout << "std::runtime error: " << e.what() << "\n";
@@ -69,62 +77,65 @@ BOOST_AUTO_UNIT_TEST( test_router_flexml_1 )
catch ( ... ) {
BOOST_CHECK (false);
}
- BOOST_CHECK(tfilter_destroyed == true);
+ BOOST_CHECK_EQUAL(tfilter_ref, 0);
}
+// Pass non-wellformed XML
BOOST_AUTO_UNIT_TEST( test_router_flexml_2 )
{
- bool got_xml_error = false;
+ bool got_error_as_expected = false;
try
{
std::string xmlconf_invalid = "\n"
- "\n"
+ "\n"
" \n"
" \n"
" \n"
- " 210\n";
+ " @:210\n";
- yp2::FilterFactory factory;
- yp2::RouterFleXML rflexml(xmlconf_invalid, factory);
+ mp::FactoryFilter factory;
+ mp::RouterFleXML rflexml(xmlconf_invalid, factory);
}
- catch ( yp2::RouterFleXML::XMLError &e) {
- got_xml_error = true;
+ catch ( mp::XMLError &e) {
+ std::cout << "XMLError: " << e.what() << "\n";
+ got_error_as_expected = true;
}
catch ( std::runtime_error &e) {
std::cout << "std::runtime error: " << e.what() << "\n";
- BOOST_CHECK (false);
}
catch ( ... ) {
;
}
- BOOST_CHECK(got_xml_error);
+ BOOST_CHECK(got_error_as_expected);
}
+// Pass well-formed XML with explicit NS
BOOST_AUTO_UNIT_TEST( test_router_flexml_3 )
{
try
{
std::string xmlconf = "\n"
- "\n"
- " \n"
- " \n"
- " \n"
- " 210\n"
- " \n"
- " \n"
- " mylog.log\n"
- " \n"
- " \n"
- " \n"
- " \n"
- " \n"
- " \n"
- " \n"
- " \n"
- "\n";
+ "\n"
+ " \n"
+ " \n"
+ " \n"
+ " @:210\n"
+ " \n"
+ " \n"
+ " my msg\n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ "\n";
- yp2::FactoryStatic factory;
- yp2::RouterFleXML rflexml(xmlconf, factory);
+ mp::FactoryStatic factory;
+ mp::RouterFleXML rflexml(xmlconf, factory);
}
catch ( std::runtime_error &e) {
std::cout << "std::runtime error: " << e.what() << "\n";
@@ -135,6 +146,42 @@ BOOST_AUTO_UNIT_TEST( test_router_flexml_3 )
}
}
+// Pass well-formed XML but bad filter type
+BOOST_AUTO_UNIT_TEST( test_router_flexml_4 )
+{
+ bool got_error_as_expected = false;
+ try
+ {
+ std::string xmlconf = "\n"
+ "\n"
+ " \n"
+ " \n"
+ " \n"
+ " @:210\n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ " \n"
+ "\n";
+
+ mp::FactoryStatic factory;
+ factory.add_creator("tfilter", filter_creator);
+ mp::RouterFleXML rflexml(xmlconf, factory);
+ }
+ catch ( mp::FactoryFilter::NotFound &e) {
+ std::cout << "mp::FactoryFilter::NotFound: " << e.what() << "\n";
+ got_error_as_expected = true;
+ }
+ catch ( std::runtime_error &e) {
+ std::cout << "std::runtime error: " << e.what() << "\n";
+ }
+ BOOST_CHECK(got_error_as_expected);
+}
+
/*
* Local variables: