Ensures normalization on waitfe/fc-xml operations
[anna.git] / source / testing / TestCondition.cpp
index fcb3c08..416b893 100644 (file)
@@ -10,7 +10,7 @@
 #include <algorithm>
 
 // Project
-#include <anna/testing/TestCondition.hpp>
+#include <anna/testing/TestDiameterCondition.hpp>
 
 #include <anna/xml/Node.hpp>
 #include <anna/xml/Compiler.hpp>
 using namespace anna::testing;
 
 
-const char* TestCondition::asText(const Type::_v type)
+const char* TestDiameterCondition::asText(const Type::_v type)
 throw() {
   static const char* text [] = { "RegexpXml", "RegexpHex", "Fields" };
   return text [type];
 }
 
-bool TestCondition::exists() const throw() {
+bool TestDiameterCondition::exists() const throw() {
   if (a_type != Type::Fields) return (getRegexp() != "");
 
   return (a_code != "" || a_bitR != "" || a_hopByHop != "" || a_applicationId != "" || a_sessionId != "" || a_resultCode != "" || a_msisdn != "" || a_imsi != "" || a_serviceContextId != "");
 }
 
-bool TestCondition::comply(const anna::DataBlock &message) const throw() {
+bool TestDiameterCondition::comply(const anna::DataBlock &message) const throw() {
 
   if (a_type == Type::RegexpXml) {
     anna::diameter::codec::Message codecMsg;
     try { codecMsg.decode(message); } catch (anna::RuntimeException &ex) { ex.trace(); }
-
-    //return codecMsg.isLike(getRegexp());
-    // We will remove LF from both sides to ease regexp management:
-    std::string regexp = getRegexp();
-    regexp.erase(std::remove(regexp.begin(), regexp.end(), '\n'), regexp.end());
-    anna::RegularExpression re(regexp);
-
-    std::string msgString = codecMsg.asXMLString();
-    msgString.erase(std::remove(msgString.begin(), msgString.end(), '\n'), msgString.end());
-
-    return re.isLike(msgString); 
+    return codecMsg.isLike(getRegexp());
   }
   else if (a_type == Type::RegexpHex) {
     anna::RegularExpression re(getRegexp());
@@ -147,9 +137,9 @@ bool TestCondition::comply(const anna::DataBlock &message) const throw() {
   return true;
 }
 
-anna::xml::Node* TestCondition::asXML(anna::xml::Node* parent) const
+anna::xml::Node* TestDiameterCondition::asXML(anna::xml::Node* parent) const
 throw() {
-  anna::xml::Node* result = parent->createChild("TestCondition");
+  anna::xml::Node* result = parent->createChild("TestDiameterCondition");
   if (!exists()) return result;
 
   if (a_type == Type::RegexpXml) {