logic: IDE Communication

Network code and controller added to communicate with IDE plugins. Does not include GUI integration though.
This commit is contained in:
Manuel Dobusch
2015-10-14 15:40:10 +02:00
parent 4e4cb25540
commit 0664f9a81b
31 changed files with 993 additions and 57 deletions
+62
View File
@@ -0,0 +1,62 @@
#include <cxxtest/TestSuite.h>
#include "component/controller/helper/NetworkProtocolHelper.h"
class NetworkProtocolHelperTestSuite : public CxxTest::TestSuite
{
public:
void test_parse_message(void)
{
std::string type = "setActiveToken";
std::string divider = ">>";
std::string filePath = "C:\\Users\\Manuel\\imporant\\file\\location\\fileName.cpp";
int row = 1;
int column = 2;
// valid message
std::stringstream message;
message << type << divider << filePath << divider << row << divider << column;
NetworkProtocolHelper::NetworkMessage networkMessage = NetworkProtocolHelper::parseMessage(message.str());
TS_ASSERT_EQUALS(networkMessage.fileLocation, filePath);
TS_ASSERT_EQUALS(networkMessage.row, row);
TS_ASSERT_EQUALS(networkMessage.column, column);
// invalid type
message.str("");
message << "foo" << divider << filePath << divider << row << divider << column;
networkMessage = NetworkProtocolHelper::parseMessage(message.str());
TS_ASSERT_EQUALS(networkMessage.fileLocation, "");
TS_ASSERT_EQUALS(networkMessage.row, 0);
TS_ASSERT_EQUALS(networkMessage.column, 0);
// missing divider
message.str("");
message << type << divider << filePath << row << divider << column;
networkMessage = NetworkProtocolHelper::parseMessage(message.str());
TS_ASSERT_EQUALS(networkMessage.fileLocation, "");
TS_ASSERT_EQUALS(networkMessage.row, 0);
TS_ASSERT_EQUALS(networkMessage.column, 0);
// invalid row
message.str("");
message << type << divider << filePath << divider << "potato" << divider << column;
networkMessage = NetworkProtocolHelper::parseMessage(message.str());
TS_ASSERT_EQUALS(networkMessage.fileLocation, "");
TS_ASSERT_EQUALS(networkMessage.row, 0);
TS_ASSERT_EQUALS(networkMessage.column, 0);
// invalid column
message.str("");
message << type << divider << filePath << divider << row << divider << "laz0r";
networkMessage = NetworkProtocolHelper::parseMessage(message.str());
TS_ASSERT_EQUALS(networkMessage.fileLocation, "");
TS_ASSERT_EQUALS(networkMessage.row, 0);
TS_ASSERT_EQUALS(networkMessage.column, 0);
}
};