Commit 437ac959 authored by Yann Garcia's avatar Yann Garcia
Browse files

Add TPs for Adaptor

parent e71c9eb0
Loading
Loading
Loading
Loading
+134 −9
Original line number Original line Diff line number Diff line
@@ -61,16 +61,64 @@ int xml_codec::encode(const LibHttp__XmlMessageBodyTypes::XmlBody& body, OCTETST
      //        ==> xmlns:xsi=http://www.cise.eu/datamodel/v1/entity/organization/ xsi:type="ns4:Organization"
      //        ==> xmlns:xsi=http://www.cise.eu/datamodel/v1/entity/organization/ xsi:type="ns4:Organization"
      loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround");
      loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround");
      std::string s(static_cast<const unsigned char*>(data), data.lengthof() + static_cast<const unsigned char*>(data));
      std::string s(static_cast<const unsigned char*>(data), data.lengthof() + static_cast<const unsigned char*>(data));
      size_t idx = 0;
      patch_agent_derivations(s);
      std::string f(" xsi:type=\"agent:Organization\"");
      loggers::get_instance().log("xml_codec::encode: After patch_agent_derivations: '%s'", s.c_str());
      std::string t(" xsi:type=\"ns6:Organization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
      /*size_t idx = 0;
      // std::string f("\"agent:Organization\"");
      std::string search(" xsi:type=\"agent:Agent\"");
      // std::string t("\"xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"ns4:Organization\"");
      std::string replace(" xsi:type=\"ns6:Agent\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
      loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", f.c_str(), t.c_str());
      loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
      while ((idx = s.find(f)) != std::string::npos) {
      while ((idx = s.find(search)) != std::string::npos) {
        s.replace(idx, f.length(), t);
        s.replace(idx, search.length(), replace);
        idx += t.length();
        idx += replace.length();
      } // End of 'while' statement
      search.assign(" xsi:type=\"agent:Organization\"");
      replace.assign(" xsi:type=\"ns6:Organization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
      idx = 0;
      loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
      while ((idx = s.find(search)) != std::string::npos) {
        s.replace(idx, search.length(), replace);
        idx += replace.length();
      } // End of 'while' statement
      search.assign(" xsi:type=\"agent:FormalOrganization\"");
      replace.assign(" xsi:type=\"ns6:FormalOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
      idx = 0;
      loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
      while ((idx = s.find(search)) != std::string::npos) {
        s.replace(idx, search.length(), replace);
        idx += replace.length();
      } // End of 'while' statement
      search.assign(" xsi:type=\"agent:OrganizationalCollaboration\"");
      replace.assign(" xsi:type=\"ns6:OrganizationalCollaboration\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
      idx = 0;
      loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
      while ((idx = s.find(search)) != std::string::npos) {
        s.replace(idx, search.length(), replace);
        idx += replace.length();
      } // End of 'while' statement
      } // End of 'while' statement
      search.assign(" xsi:type=\"agent:OrganizationalUnit\"");
      replace.assign(" xsi:type=\"ns6:OrganizationalUnit\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
      idx = 0;
      loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
      while ((idx = s.find(search)) != std::string::npos) {
        s.replace(idx, search.length(), replace);
        idx += replace.length();
      } // End of 'while' statement
      search.assign(" xsi:type=\"agent:Person\"");
      replace.assign(" xsi:type=\"ns6:Person\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
      idx = 0;
      loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
      while ((idx = s.find(search)) != std::string::npos) {
        s.replace(idx, search.length(), replace);
        idx += replace.length();
      } // End of 'while' statement
      search.assign(" xsi:type=\"agent:PortOrganization\"");
      replace.assign(" xsi:type=\"ns6:PortOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
      idx = 0;
      loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
      while ((idx = s.find(search)) != std::string::npos) {
        s.replace(idx, search.length(), replace);
        idx += replace.length();
      }*/ // End of 'while' statement


      data = OCTETSTRING(s.length(), (const unsigned char*)s.c_str());
      data = OCTETSTRING(s.length(), (const unsigned char*)s.c_str());
    }
    }
@@ -86,6 +134,83 @@ int xml_codec::encode(const LibHttp__XmlMessageBodyTypes::XmlBody& body, OCTETST
  return 0;
  return 0;
}
}


int xml_codec::patch_agent_derivations(std::string& s) {
  size_t idx = 0;
  std::string search(" xsi:type=\"agent:Agent\"");
  std::string replace(" xsi:type=\"ns6:Agent\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
  loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
  while ((idx = s.find(search)) != std::string::npos) {
    s.replace(idx, search.length(), replace);
    idx += replace.length();
  } // End of 'while' statement
  search.assign(" xsi:type=\"agent:Organization\"");
  replace.assign(" xsi:type=\"ns6:Organization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
  idx = 0;
  loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
  while ((idx = s.find(search)) != std::string::npos) {
    s.replace(idx, search.length(), replace);
    idx += replace.length();
  } // End of 'while' statement
  search.assign(" xsi:type=\"agent:FormalOrganization\"");
  replace.assign(" xsi:type=\"ns6:FormalOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
  idx = 0;
  loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
  while ((idx = s.find(search)) != std::string::npos) {
    s.replace(idx, search.length(), replace);
    idx += replace.length();
  } // End of 'while' statement
  search.assign(" xsi:type=\"agent:OrganizationalCollaboration\"");
  replace.assign(" xsi:type=\"ns6:OrganizationalCollaboration\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
  idx = 0;
  loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
  while ((idx = s.find(search)) != std::string::npos) {
    s.replace(idx, search.length(), replace);
    idx += replace.length();
  } // End of 'while' statement
  search.assign(" xsi:type=\"agent:OrganizationalUnit\"");
  replace.assign(" xsi:type=\"ns6:OrganizationalUnit\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
  idx = 0;
  loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
  while ((idx = s.find(search)) != std::string::npos) {
    s.replace(idx, search.length(), replace);
    idx += replace.length();
  } // End of 'while' statement
  search.assign(" xsi:type=\"agent:Person\"");
  replace.assign(" xsi:type=\"ns6:Person\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
  idx = 0;
  loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
  while ((idx = s.find(search)) != std::string::npos) {
    s.replace(idx, search.length(), replace);
    idx += replace.length();
  } // End of 'while' statement
  search.assign(" xsi:type=\"agent:PortOrganization\"");
  replace.assign(" xsi:type=\"ns6:PortOrganization\" xmlns:ns6=\"http://www.cise.eu/datamodel/v1/entity/organization/\"");
  idx = 0;
  loggers::get_instance().log("xml_codec::encode: Apply TITAN workaround: %s --> %s", search.c_str(), replace.c_str());
  while ((idx = s.find(search)) != std::string::npos) {
    s.replace(idx, search.length(), replace);
    idx += replace.length();
  } // End of 'while' statement

  loggers::get_instance().log("xml_codec::patch_agent_derivations: s: '%s'", s.c_str());
  return 0;
}

int xml_codec::patch_location_derivations(std::string& s) {

  return 0;
}

int xml_codec::patch_object_derivations(std::string& s) {

  return 0;
}

int xml_codec::patch_document_derivations(std::string& s) {

  return 0;
}

int xml_codec::decode (const OCTETSTRING& p_data, LibHttp__XmlMessageBodyTypes::XmlBody& body, params* p_params)
int xml_codec::decode (const OCTETSTRING& p_data, LibHttp__XmlMessageBodyTypes::XmlBody& body, params* p_params)
{
{
  loggers::get_instance().log_msg(">>> xml_codec::decode: p_data=", p_data);
  loggers::get_instance().log_msg(">>> xml_codec::decode: p_data=", p_data);
+6 −0
Original line number Original line Diff line number Diff line
@@ -13,6 +13,12 @@ namespace LibHttp__XmlMessageBodyTypes {


class xml_codec: public codec_gen<LibHttp__XmlMessageBodyTypes::XmlBody, LibHttp__XmlMessageBodyTypes::XmlBody>
class xml_codec: public codec_gen<LibHttp__XmlMessageBodyTypes::XmlBody, LibHttp__XmlMessageBodyTypes::XmlBody>
{
{
  //TITAN issue: variant "namespace for 'agent/organization' seems buggy: <Agent xsi:type="agent:Organization">
  int patch_agent_derivations(std::string& s);
  int patch_location_derivations(std::string& s);
  int patch_object_derivations(std::string& s);
  int patch_document_derivations(std::string& s);
  //TITAN issue: variant "namespace for 'agent/organization' seems buggy: <Agent xsi:type="agent:Organization">
public:
public:
  explicit xml_codec() : codec_gen<LibHttp__XmlMessageBodyTypes::XmlBody, LibHttp__XmlMessageBodyTypes::XmlBody>() { };
  explicit xml_codec() : codec_gen<LibHttp__XmlMessageBodyTypes::XmlBody, LibHttp__XmlMessageBodyTypes::XmlBody>() { };
  virtual ~xml_codec() { };
  virtual ~xml_codec() { };
+3759 −517

File changed.

Preview size limit exceeded, changes collapsed.

+1 −0
Original line number Original line Diff line number Diff line
@@ -33,6 +33,7 @@ Package CISE_Common {
      - ADAPTER          // CISE LIS Adapter as IUT
      - ADAPTER          // CISE LIS Adapter as IUT
      - NETWORK          // CISE NETWORK
      - NETWORK          // CISE NETWORK
      - IUT              // Implementation under test
      - IUT              // Implementation under test
      - TEST_SYSTEM      // Triggered events
    ;
    ;


    events:
    events:
+11 −2
Original line number Original line Diff line number Diff line
@@ -1201,6 +1201,12 @@ module AtsCise_TestCases {
                                                                                               m_location_derivations_location(
                                                                                               m_location_derivations_location(
                                                                                                                               m_location(
                                                                                                                               m_location(
                                                                                                                                          { m_geometry }
                                                                                                                                          { m_geometry }
                                                                                               /*m_location_derivations_named_location(
                                                                                                                                     m_named_location(
                                                                                                                                                    { m_geometry }
                                                                                                m_location_derivations_port_facility_location(
                                                                                                                                            m_port_facility_location(
                                                                                                                                                                   { m_geometry }*/
                                                                                )))
                                                                                )))
                                                                              },
                                                                              },
                                                                              -, -,
                                                                              -, -,
@@ -1212,9 +1218,12 @@ module AtsCise_TestCases {
                                                                                                                                       m_unique_identifier(
                                                                                                                                       m_unique_identifier(
                                                                                                                                                           -, -, -, 
                                                                                                                                                           -, -, -, 
                                                                                                                                                           PX_AGENT_UUID
                                                                                                                                                           PX_AGENT_UUID
                                                                                                                               ))),*/
                                                                                                                               ))),
                                                                                                     m_agent_derivations_organization(
                                                                                                     m_agent_derivations_organization(
                                                                                                                                      m_organization
                                                                                                                                      m_organization
                                                                                                                                      ),*/
                                                                                                     m_agent_derivations_formal_organization(
                                                                                                                                             m_formal_organization
                                                                                                                                             ),
                                                                                                                                             ),
                                                                                                     nonSpecified
                                                                                                     nonSpecified
                                                                                                     )
                                                                                                     )