|
From: <tho...@us...> - 2011-12-31 18:20:18
|
Revision: 621
http://openautomation.svn.sourceforge.net/openautomation/?rev=621&view=rev
Author: thomas_s
Date: 2011-12-31 18:20:12 +0000 (Sat, 31 Dec 2011)
Log Message:
-----------
refactored testcases in test_devicemanager
Modified Paths:
--------------
xPLHAL/branches/thomas_s_dev/test/test_devicemanager.cpp
Modified: xPLHAL/branches/thomas_s_dev/test/test_devicemanager.cpp
===================================================================
--- xPLHAL/branches/thomas_s_dev/test/test_devicemanager.cpp 2011-12-31 18:18:39 UTC (rev 620)
+++ xPLHAL/branches/thomas_s_dev/test/test_devicemanager.cpp 2011-12-31 18:20:12 UTC (rev 621)
@@ -1,54 +1,24 @@
#include "../src/devicemanager.h"
#define BOOST_TEST_MODULE "DeviceManager"
#include <boost/test/unit_test.hpp>
-//#include "mock_xplhandler.h"
+#include <mockpp/visiting/CountedVisitableMethod.h>
-//#include "xplcache.h"
+using namespace mockpp;
+
#include "devicemanager.h"
#include <boost/regex.hpp>
-// load globas and give them their space to live
-//#include "globals.h"
-
-#if 0
-using namespace boost::filesystem;
-path xPLHalRootFolder;
-path DataFileFolder;
-path ScriptEngineFolder;
-path rulesFolder;
-#endif
-
-
-#if 0
-class MockXplHandler: public IxPLHandler
+xPLMessagePtr createXplMessage(xPL_MessageType type, const std::string& srcVDI, const std::string& dstVDI,
+ const std::string& msgClass, const std::string& msgType, xPLMessage::namedValueList list)
{
- public:
- void sendBroadcastMessage( const std::string& msgClass, const std::string& msgType, const xPLMessage::namedValueList& namedValues ) const
- {
- std::cerr << "sendBroadcastMessage(" << msgClass;
- std::cerr << std::endl;
- }
+ xPLMessagePtr msg( new xPLMessage(type, srcVDI,
+ msgClass, msgType,
+ list));
+ msg->setTargetFromVDI(dstVDI);
+ return msg;
+}
- /** \brief Send a directed message to the xPL network. */
- void sendMessage( const xPL_MessageType type, const std::string& tgtVendor, const std::string& tgtDeviceID,
- const std::string& tgtInstanceID, const std::string& msgClass, const std::string& msgType,
- const xPLMessage::namedValueList& namedValues ) const
- {
- std::cerr << "sendMessage";
- std::cerr << std::endl;
- }
-
- /** \brief Send a directed message to the xPL network. */
- void sendMessage( const xPL_MessageType type, const std::string& VDI,
- const std::string& msgClass, const std::string& msgType, const xPLMessage::namedValueList& namedValues ) const
- {
- std::cerr << "sendMessage";
- std::cerr << std::endl;
- }
-};
-#endif
-
class MockXplCache: public IxPLCacheClass
{
/** \returns true if the element name exists. */
@@ -88,45 +58,27 @@
virtual void saveCache( void ) const { }
};
-class MockSignalReceiver
+class MockSignalReceiver : public VisitableMockObject
{
public:
- void handleSignal(const xPLMessagePtr message)
+ MockSignalReceiver()
+ :VisitableMockObject("MockSignalReceiver", 0)
+ ,handleSignal_mocker("handleSignal", this)
+ {}
+
+ virtual void handleSignal(const xPLMessagePtr message)
{
std::cout << "received signal" << *message << std::endl;
+ handleSignal_mocker.forward(*message);
}
+ VisitableMockMethod<void, xPLMessage> handleSignal_mocker;
};
BOOST_AUTO_TEST_SUITE(DeviceManagerSuite);
BOOST_AUTO_TEST_CASE( add_device )
{
- xPLMessage::namedValueList values;
- values.push_back( std::make_pair( "tag", "value" ) );
- xPLMessagePtr msg( new xPLMessage(xPL_MESSAGE_TRIGGER,
- "pnxs", "hs485", "default1",
- "blah", "blub",
- values) );
-#if 0
- xPL_MessagePtr msg = new xPL_Message;
- msg->messageType = xPL_MESSAGE_TRIGGER;
- msg->hopCount = 0;
- msg->receivedMessage = TRUE; /* TRUE if received, FALSE if being sent */
- msg->sourceVendor = "pnxs";
- msg->sourceDeviceID = "hs485";
- msg->sourceInstanceID = "default1";
- msg->isGroupMessage = FALSE;
- msg->groupName = 0;
- msg->isBroadcastMessage = TRUE;
- msg->targetVendor = "*";
- msg->targetDeviceID = "";
- msg->targetInstanceID = "";
- msg->schemaClass = "blah";
- msg->schemaType = "blub";
- xPL_addMessageNamedValue(msg, "tag", "value");
-#endif
-
-// MockXplHandler mockHandler;
+ xPLMessagePtr msg( createXplMessage(xPL_MESSAGE_TRIGGER, "pnxs-hs485.default1", "*", "blah", "blub", {{"tag", "value"}}));
MockXplCache mockCache;
deviceManagerClass dm(&mockCache);
@@ -135,87 +87,16 @@
BOOST_CHECK( dm.contains("pnxs-hs485.default1") == true);
}
-#define m2s(match, group) std::string(match[group].first, match[group].second)
-//xPL_MessagePtr createXplMessage(const char* srcVDI, const char* dstVDI, const char* schema, std::map<std::string, std::string> tags)
-xPL_MessagePtr createXplMessage(xPL_MessageType msgType, const std::string& srcVDI, const std::string& dstVDI, const char* schema)
-{
- std::string regex = R"(^([\w\d]+)-([\w\d]+)\.([\w\d]+)$)";
- xPL_MessagePtr msg = new xPL_Message;
- msg->messageType = msgType;
- msg->hopCount = 0;
- msg->receivedMessage = TRUE; /* TRUE if received, FALSE if being sent */
- msg->isGroupMessage = FALSE;
- msg->groupName = 0;
- msg->isBroadcastMessage = TRUE;
- msg->schemaClass = "blah";
- msg->schemaType = "blub";
-// xPL_addMessageNamedValue(msg, "tag", "value");
-
-
- boost::regex re_vdi(regex);
- boost::smatch match;
- if( ! boost::regex_match(srcVDI, match, re_vdi) ) {
- delete msg;
- return 0;
- }
- msg->sourceVendor = m2s(match, 1).c_str();
- msg->sourceDeviceID = m2s(match, 2).c_str();
- msg->sourceInstanceID = m2s(match, 3).c_str();
-
- if( dstVDI == "*") {
- msg->targetVendor = "*";
- msg->targetDeviceID = "";
- msg->targetInstanceID = "";
- }
- else {
- if( ! boost::regex_match(dstVDI, match, re_vdi) ) {
- delete msg;
- return 0;
- }
- }
- msg->targetVendor = m2s(match, 1).c_str();
- msg->targetDeviceID = m2s(match, 2).c_str();
- msg->targetInstanceID = m2s(match, 3).c_str();
-
- return 0;
-}
-
BOOST_AUTO_TEST_CASE( remove_device )
{
-// xPL_MessagePtr mymsg = createXplMessage(xPL_MESSAGE_TRIGGER, "pnxs-hs485.default1", "*", "blah.blub");
- xPLMessage::namedValueList values;
- values.push_back( std::make_pair( "tag", "value" ) );
- xPLMessagePtr msg( new xPLMessage(xPL_MESSAGE_TRIGGER,
- "pnxs", "hs485", "default1",
- "blah", "blub",
- values) );
-#if 0
- xPL_MessagePtr msg = new xPL_Message;
- msg->messageType = xPL_MESSAGE_TRIGGER;
- msg->hopCount = 0;
- msg->receivedMessage = TRUE; /* TRUE if received, FALSE if being sent */
- msg->sourceVendor = "pnxs";
- msg->sourceDeviceID = "hs485";
- msg->sourceInstanceID = "default1";
- msg->isGroupMessage = FALSE;
- msg->groupName = 0;
- msg->isBroadcastMessage = TRUE;
- msg->targetVendor = "*";
- msg->targetDeviceID = "";
- msg->targetInstanceID = "";
- msg->schemaClass = "blah";
- msg->schemaType = "blub";
- xPL_addMessageNamedValue(msg, "tag", "value");
-#endif
+ xPLMessagePtr msg( createXplMessage(xPL_MESSAGE_TRIGGER, "pnxs-hs485.default1", "*", "blah", "blub", {{"tag", "value"}}));
-// MockXplHandler mockHandler;
MockXplCache mockCache;
MockSignalReceiver sigrecv;
-// xPLMessage::namedValueList nvl;
-// mockHandler.sendMessage(xPL_MESSAGE_COMMAND, "pnxs", "hs485", "default1", "config", "list", nvl);
-// mockHandler.activate();
+ sigrecv.handleSignal(createXplMessage(xPL_MESSAGE_COMMAND, "pnxs-hs485.default1", "*", "config", "list", {{"command", "request"}}));
+ sigrecv.activate();
deviceManagerClass dm(&mockCache);
dm.m_sigSendXplMessage.connect(boost::bind(&MockSignalReceiver::handleSignal, &sigrecv, _1));
@@ -227,7 +108,7 @@
dm.processRemove(msg);
BOOST_CHECK( dm.contains("pnxs-hs485.default1") == false);
- //mockHandler.verify();
+ sigrecv.verify();
}
BOOST_AUTO_TEST_SUITE_END();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|