summaryrefslogtreecommitdiff
path: root/SDL_Core/test/components/json_handler/src/meta_formatter_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'SDL_Core/test/components/json_handler/src/meta_formatter_test.cc')
-rw-r--r--SDL_Core/test/components/json_handler/src/meta_formatter_test.cc496
1 files changed, 496 insertions, 0 deletions
diff --git a/SDL_Core/test/components/json_handler/src/meta_formatter_test.cc b/SDL_Core/test/components/json_handler/src/meta_formatter_test.cc
new file mode 100644
index 000000000..761d269cc
--- /dev/null
+++ b/SDL_Core/test/components/json_handler/src/meta_formatter_test.cc
@@ -0,0 +1,496 @@
+/**
+ * @file meta_formatter_test.cc
+ * @brief implementation of test for class CMetaFormatter
+ */
+// Copyright (c) 2013, Ford Motor Company
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided with the
+// distribution.
+//
+// Neither the name of the Ford Motor Company nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 'A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.auto
+
+#include "gtest/gtest.h"
+
+#include <iostream>
+#include <stdio.h>
+
+#include "formatters/meta_formatter.h"
+#include "formatters/CSmartFactory.hpp"
+#include "formatters/CFormatterJsonSDLRPCv1.hpp"
+
+#include "smart_objects/always_true_schema_item.h"
+#include "smart_objects/always_false_schema_item.h"
+#include "smart_objects/array_schema_item.h"
+#include "smart_objects/bool_schema_item.h"
+#include "smart_objects/object_schema_item.h"
+#include "smart_objects/string_schema_item.h"
+#include "smart_objects/enum_schema_item.h"
+#include "smart_objects/number_schema_item.h"
+#include "smart_objects/schema_item_parameter.h"
+
+#include "json_handler/meta_formatter_test_helper.h"
+
+using test::components::JSONHandler::formatters::CMetaFormatterTestHelper;
+namespace testhelper_ns = test::components::JSONHandler::formatters;
+namespace formatter_ns = NsSmartDeviceLink::NsJSONHandler::Formatters;
+namespace generated_ns = Gen::test::components::JSONHandler2;
+namespace strings_ns = NsSmartDeviceLink::NsJSONHandler::strings;
+namespace smartobjects_ns = NsSmartDeviceLink::NsSmartObjects;
+
+namespace test {
+namespace components {
+namespace JSONHandler {
+namespace formatters {
+
+TEST_F(CMetaFormatterTestHelper, test_inputObjectIdenticalToSchemaWithAndWithoutMandatoryParams) {
+ Json::Value value; // just a quick workaround to avoid undefined reference to Json
+ Json::Reader reader; // the same thing
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject object1 =
+ factory_.CreateSmartObject(
+ generated_ns::FunctionID::RegisterAppInterfaceID,
+ generated_ns::messageType::request);
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject object2 =
+ factory_.CreateSmartObject(
+ generated_ns::FunctionID::RegisterAppInterfaceID,
+ generated_ns::messageType::request);
+
+ NsSmartDeviceLink::NsSmartObjects::SmartObject result_object1;
+ NsSmartDeviceLink::NsSmartObjects::SmartObject result_object2;
+ // get schema
+ NsSmartDeviceLink::NsSmartObjects::CSmartSchema schema;
+ bool get_schema_result = factory_.GetSchema(
+ generated_ns::FunctionID::RegisterAppInterfaceID,
+ generated_ns::messageType::request,
+ schema);
+
+ ASSERT_TRUE(get_schema_result);
+
+ FillObjectIdenticalToSchema(object1);
+ FillObjectIdenticalToSchemaWithoutNoMandatoriesParams(object2);
+
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object1,
+ schema, result_object1);
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object2,
+ schema, result_object2);
+
+ if (true == kIsPrintOut) { // printing out
+ std::string formatted_string;
+ formatter_ns::CFormatterJsonSDLRPCv1::toString(object1, formatted_string);
+ printf("object1 %s\n", formatted_string.c_str());
+
+ formatter_ns::CFormatterJsonSDLRPCv1::toString(result_object1, formatted_string);
+ printf("result_object1 %s\n", formatted_string.c_str());
+
+ formatter_ns::CFormatterJsonSDLRPCv1::toString(object2, formatted_string);
+ printf("object2 %s\n", formatted_string.c_str());
+
+ formatter_ns::CFormatterJsonSDLRPCv1::toString(result_object2, formatted_string);
+ printf("result_object2 %s\n", formatted_string.c_str());
+ }
+
+ CompareObjects(object1, result_object1);
+ CompareObjects(result_object1, object1);
+ CompareObjects(object2, result_object2);
+ CompareObjects(result_object2, object2);
+
+ // enums must be unapplied (converted to string) in order to be compared against strings
+ result_object1.getSchema().unapplySchema(result_object1);
+ EXPECT_EQ("request",
+ result_object1[strings_ns::S_PARAMS][strings_ns::S_MESSAGE_TYPE].asString());
+ EXPECT_EQ("RegisterAppInterfaceID",
+ result_object1[strings_ns::S_PARAMS][strings_ns::S_FUNCTION_ID].asString());
+
+ result_object2.getSchema().unapplySchema(result_object2);
+ EXPECT_EQ("request",
+ result_object2[strings_ns::S_PARAMS][strings_ns::S_MESSAGE_TYPE].asString());
+ EXPECT_EQ("RegisterAppInterfaceID",
+ result_object2[strings_ns::S_PARAMS][strings_ns::S_FUNCTION_ID].asString());
+}
+
+
+TEST_F(CMetaFormatterTestHelper, test_NormalSchemaWithEmptyObject) {
+ NsSmartDeviceLink::NsSmartObjects::SmartObject object;
+ NsSmartDeviceLink::NsSmartObjects::SmartObject result_object;
+ NsSmartDeviceLink::NsSmartObjects::SmartObject expected_object;
+ // get schema
+ NsSmartDeviceLink::NsSmartObjects::CSmartSchema schema;
+ bool get_schema_result = factory_.GetSchema(
+ generated_ns::FunctionID::RegisterAppInterfaceID,
+ generated_ns::messageType::request,
+ schema);
+
+ ASSERT_TRUE(get_schema_result);
+
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object, schema, result_object);
+
+ FillObjectWithDefaultValues(expected_object);
+
+ CompareObjects(expected_object, result_object);
+ CompareObjects(result_object, expected_object);
+
+ if (true == kIsPrintOut) {
+ std::string str;
+ AnyObjectToJsonString(result_object, str);
+ printf("result_object(default) %s", str.c_str());
+ }
+}
+
+TEST_F(CMetaFormatterTestHelper, test_NormalSchemaWithObjectWithoutSomeMandatoryFields) {
+ NsSmartDeviceLink::NsSmartObjects::SmartObject object;
+ NsSmartDeviceLink::NsSmartObjects::SmartObject result_object;
+ // get schema
+ NsSmartDeviceLink::NsSmartObjects::CSmartSchema schema;
+ bool get_schema_result = factory_.GetSchema(
+ generated_ns::FunctionID::RegisterAppInterfaceID,
+ generated_ns::messageType::request,
+ schema);
+
+ ASSERT_TRUE(get_schema_result);
+
+ FillObjectWithoutSomeMandatoryFields(object);
+
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object, schema, result_object);
+
+ CompareObjects(object, result_object);
+ EXPECT_EQ(0,
+ result_object[strings_ns::S_PARAMS][strings_ns::S_CORRELATION_ID].asInt());
+ EXPECT_EQ(0,
+ result_object[strings_ns::S_MSG_PARAMS]["syncMsgVersion"]["majorVersion"].asInt());
+ EXPECT_EQ(0,
+ result_object[strings_ns::S_MSG_PARAMS]["syncMsgVersion"]["minorVersion"].asInt());
+
+ if (true == kIsPrintOut) {
+ std::string str;
+ AnyObjectToJsonString(result_object, str);
+ printf("result_object %s", str.c_str());
+ }
+}
+
+TEST_F(CMetaFormatterTestHelper, test_SimpleEmptyMap) {
+ std::map<std::string, smartobjects_ns::CObjectSchemaItem::SMember> schemaMembersMap;
+ smartobjects_ns::CSmartSchema map_schema =
+ smartobjects_ns::CSmartSchema(
+ smartobjects_ns::CObjectSchemaItem::create(schemaMembersMap));
+
+ smartobjects_ns::SmartObject object;
+ NsSmartDeviceLink::NsSmartObjects::SmartObject result_object_empty_map;
+
+ smartobjects_ns::SmartObject object_empty_map =
+ smartobjects_ns::SmartObject(smartobjects_ns::SmartType_Map);
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object_empty_map,
+ map_schema, result_object_empty_map);
+ ASSERT_EQ(smartobjects_ns::SmartType_Map, result_object_empty_map.getType())
+ << "smartObject is not map type";
+ ASSERT_EQ(0, result_object_empty_map.length()) << "non empty map";
+
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object,
+ map_schema, result_object_empty_map);
+ ASSERT_EQ(smartobjects_ns::SmartType_Map, result_object_empty_map.getType())
+ << "smartObject is not map type";
+ ASSERT_EQ(0, result_object_empty_map.length()) << "non empty map";
+
+ object["field1"] = 0;
+ object["field2"] = smartobjects_ns::SmartObject();
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object,
+ map_schema, result_object_empty_map);
+ ASSERT_EQ(smartobjects_ns::SmartType_Map, result_object_empty_map.getType())
+ << "smartObject is not map type";
+ ASSERT_EQ(0, result_object_empty_map.length()) << "non empty map";
+
+ // fill object with any values. Result must be the same
+ FillObjectIdenticalToSchema(object);
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object,
+ map_schema, result_object_empty_map);
+ ASSERT_EQ(smartobjects_ns::SmartType_Map, result_object_empty_map.getType())
+ << "smartObject is not map type";
+ ASSERT_EQ(0, result_object_empty_map.length()) << "non empty map";
+
+ // fill object with any values. Result must be the same
+ FillObjectIdenticalToSchemaWithoutNoMandatoriesParams(object);
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object,
+ map_schema, result_object_empty_map);
+ ASSERT_EQ(smartobjects_ns::SmartType_Map, result_object_empty_map.getType())
+ << "smartObject is not map type";
+ ASSERT_EQ(0, result_object_empty_map.length()) << "non empty map";
+
+ if (true == kIsPrintOut) {
+ std::string str;
+ AnyObjectToJsonString(result_object_empty_map, str);
+ printf("result_object(empty map) %s", str.c_str());
+ }
+
+
+}
+
+TEST_F(CMetaFormatterTestHelper, test_SimpleEmptyArray) {
+ smartobjects_ns::SmartObject object;
+
+ smartobjects_ns::SmartObject result_object_empty_array;
+ smartobjects_ns::CSmartSchema array_schema =
+ smartobjects_ns::CSmartSchema(smartobjects_ns::CArraySchemaItem::create());
+
+ smartobjects_ns::SmartObject object_empty_aray =
+ smartobjects_ns::SmartObject(smartobjects_ns::SmartType_Array);
+
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object_empty_aray,
+ array_schema, result_object_empty_array);
+ ASSERT_EQ(smartobjects_ns::SmartType_Array, result_object_empty_array.getType())
+ << "smartObject is not array type";
+ ASSERT_EQ(0, result_object_empty_array.length()) << "non empty array";
+
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object,
+ array_schema, result_object_empty_array);
+ ASSERT_EQ(smartobjects_ns::SmartType_Array, result_object_empty_array.getType())
+ << "smartObject is not array type";
+ ASSERT_EQ(0, result_object_empty_array.length()) << "non empty array";
+
+ // fill object with any values. Result must be the same
+ FillObjectIdenticalToSchema(object);
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object,
+ array_schema, result_object_empty_array);
+ ASSERT_EQ(smartobjects_ns::SmartType_Array, result_object_empty_array.getType())
+ << "smartObject is not array type";
+ ASSERT_EQ(0, result_object_empty_array.length()) << "non empty array";
+
+ // fill object with any values. Result must be the same
+ FillObjectWithoutSomeMandatoryFields(object);
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object,
+ array_schema, result_object_empty_array);
+ ASSERT_EQ(smartobjects_ns::SmartType_Array, result_object_empty_array.getType())
+ << "smartObject is not array type";
+ ASSERT_EQ(0, result_object_empty_array.length()) << "non empty array";
+
+ if (true == kIsPrintOut) {
+ std::string str;
+ AnyObjectToJsonString(result_object_empty_array, str);
+ printf("result_object(empty array) %s", str.c_str());
+ }
+}
+
+TEST_F(CMetaFormatterTestHelper, testEmptyArrayAndEmptyMapWithOtherParameters) {
+ smartobjects_ns::SmartObject result_object;
+ smartobjects_ns::SmartObject object;
+
+ std::map<std::string, smartobjects_ns::CObjectSchemaItem::SMember>
+ paramsMembersMap;
+
+ paramsMembersMap[strings_ns::S_FUNCTION_ID] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::TEnumSchemaItem<function_id::EType>::create(
+ function_id_items_), true);
+
+ paramsMembersMap[strings_ns::S_MESSAGE_TYPE] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::TEnumSchemaItem<message_type::EType>::create(
+ message_type_items_), true);
+
+ paramsMembersMap[strings_ns::S_CORRELATION_ID] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::TNumberSchemaItem<int>::create(
+ smartobjects_ns::TSchemaItemParameter<int>(0),
+ smartobjects_ns::TSchemaItemParameter<int>(100),
+ smartobjects_ns::TSchemaItemParameter<int>(55)),
+ true);
+
+ paramsMembersMap[strings_ns::S_PROTOCOL_VERSION] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::TNumberSchemaItem<int>::create(
+ smartobjects_ns::TSchemaItemParameter<int>(1),
+ smartobjects_ns::TSchemaItemParameter<int>(2)),
+ false);
+ paramsMembersMap[strings_ns::S_PROTOCOL_TYPE] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::TNumberSchemaItem<int>::create(), false);
+
+ std::map<std::string, smartobjects_ns::CObjectSchemaItem::SMember>
+ schemaMembersMap;
+
+ schemaMembersMap["mandatory_emptyMap1"] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::CObjectSchemaItem::create(
+ std::map<std::string, smartobjects_ns::CObjectSchemaItem::SMember>()), true);
+
+ schemaMembersMap["mandatory_emptyMap2"] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::CObjectSchemaItem::create(
+ std::map<std::string, smartobjects_ns::CObjectSchemaItem::SMember>()), true);
+
+ schemaMembersMap["mandatory_emptyAray"] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::CArraySchemaItem::create(
+ smartobjects_ns::TNumberSchemaItem<int>::create()), true);
+
+ schemaMembersMap["non_mandatory_Array"] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::CArraySchemaItem::create(
+ smartobjects_ns::TNumberSchemaItem<int>::create(),
+ smartobjects_ns::TSchemaItemParameter<size_t>(1),
+ smartobjects_ns::TSchemaItemParameter<size_t>(2)), false);
+
+ schemaMembersMap["mandatory_string"] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::CStringSchemaItem::create(
+ smartobjects_ns::TSchemaItemParameter<size_t>(0),
+ smartobjects_ns::TSchemaItemParameter<size_t>(500),
+ smartobjects_ns::TSchemaItemParameter<std::string>("defValue")),
+ true);
+
+ schemaMembersMap["non_mandatory_string"] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::CStringSchemaItem::create(
+ smartobjects_ns::TSchemaItemParameter<size_t>(0),
+ smartobjects_ns::TSchemaItemParameter<size_t>(500),
+ smartobjects_ns::TSchemaItemParameter<std::string>(
+ "ignoredDefValue")),
+ false);
+
+ std::map<std::string, smartobjects_ns::CObjectSchemaItem::SMember>
+ rootMembersMap;
+ rootMembersMap[strings_ns::S_MSG_PARAMS] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::CObjectSchemaItem::create(schemaMembersMap), true);
+ rootMembersMap[strings_ns::S_PARAMS] =
+ smartobjects_ns::CObjectSchemaItem::SMember(
+ smartobjects_ns::CObjectSchemaItem::create(paramsMembersMap), true);
+
+ smartobjects_ns::CSmartSchema schema =
+ smartobjects_ns::CSmartSchema(
+ smartobjects_ns::CObjectSchemaItem::create(rootMembersMap));
+
+ // set object value
+ object[strings_ns::S_PARAMS][strings_ns::S_FUNCTION_ID] = 500;
+ object[strings_ns::S_PARAMS][strings_ns::S_PROTOCOL_VERSION] = 11;
+ object[strings_ns::S_PARAMS]["new_field"] = "100500 string";
+
+ object[strings_ns::S_MSG_PARAMS]["mandatory_emptyMap1"]["field1"] = 123;
+ object[strings_ns::S_MSG_PARAMS]["mandatory_emptyMap1"]["field2"][0] = 100;
+ object[strings_ns::S_MSG_PARAMS]["mandatory_emptyMap1"]["field2"][1] = 200;
+ object[strings_ns::S_MSG_PARAMS]["non_mandatory_Array"][0] = 100;
+ object[strings_ns::S_MSG_PARAMS]["non_mandatory_Array"][1] = 200;
+ object[strings_ns::S_MSG_PARAMS]["non_mandatory_Array"][2] = 300;
+ object[strings_ns::S_MSG_PARAMS]["non_mandatory_string"] = "some string";
+
+
+ formatter_ns::CMetaFormatter::CreateObjectByPattern(object, schema, result_object);
+ if (true == kIsPrintOut) {
+ std::string str;
+ AnyObjectToJsonString(object, str);
+ printf("object %s", str.c_str());
+ AnyObjectToJsonString(result_object, str);
+ printf("result_object %s", str.c_str());
+ }
+
+ EXPECT_EQ(500,
+ result_object[strings_ns::S_PARAMS][strings_ns::S_FUNCTION_ID].asInt());
+ EXPECT_EQ(-1,
+ result_object[strings_ns::S_PARAMS][strings_ns::S_MESSAGE_TYPE].asInt());
+ EXPECT_EQ(55,
+ result_object[strings_ns::S_PARAMS][strings_ns::S_CORRELATION_ID].asInt());
+ EXPECT_EQ(11,
+ result_object[strings_ns::S_PARAMS][strings_ns::S_PROTOCOL_VERSION].asUInt());
+
+ EXPECT_EQ(smartobjects_ns::SmartType_Map,
+ result_object[strings_ns::S_MSG_PARAMS]["mandatory_emptyMap1"].getType());
+ EXPECT_EQ(0,
+ result_object[strings_ns::S_MSG_PARAMS]["mandatory_emptyMap1"].length());
+ EXPECT_EQ(smartobjects_ns::SmartType_Map,
+ result_object[strings_ns::S_MSG_PARAMS]["mandatory_emptyMap2"].getType());
+ EXPECT_EQ(0,
+ result_object[strings_ns::S_MSG_PARAMS]["mandatory_emptyMap2"].length());
+ EXPECT_EQ(smartobjects_ns::SmartType_Array,
+ result_object[strings_ns::S_MSG_PARAMS]["mandatory_emptyAray"].getType());
+ EXPECT_EQ(0,
+ result_object[strings_ns::S_MSG_PARAMS]["mandatory_emptyAray"].length());
+ EXPECT_EQ(100,
+ result_object[strings_ns::S_MSG_PARAMS]["non_mandatory_Array"][0].asInt());
+ EXPECT_EQ(200,
+ result_object[strings_ns::S_MSG_PARAMS]["non_mandatory_Array"][1].asInt());
+ EXPECT_EQ(300,
+ result_object[strings_ns::S_MSG_PARAMS]["non_mandatory_Array"][2].asUInt());
+ EXPECT_EQ(std::string("defValue"),
+ result_object[strings_ns::S_MSG_PARAMS]["mandatory_string"].asString());
+ EXPECT_EQ(std::string("some string"),
+ result_object[strings_ns::S_MSG_PARAMS]["non_mandatory_string"].asString());
+}
+}}}}
+
+namespace NsSmartDeviceLink {
+namespace NsSmartObjects {
+
+template <>
+const std::map<testhelper_ns::function_id::EType, std::string> &
+smartobjects_ns::TEnumSchemaItem<testhelper_ns::function_id::EType>
+ ::getEnumElementsStringRepresentation(void) {
+ static bool isInitialized = false;
+ static std::map<testhelper_ns::function_id::EType, std::string>
+ enumStringRepresentationMap;
+
+ if (false == isInitialized) {
+ enumStringRepresentationMap.insert(std::make_pair(
+ testhelper_ns::function_id::kRegisterAppInterfaceID,
+ "RegisterAppInterface"));
+ enumStringRepresentationMap.insert(std::make_pair(
+ testhelper_ns::function_id::kUnregisterAppInterfaceID,
+ "UnregisterAppInterface"));
+ enumStringRepresentationMap.insert(std::make_pair(
+ testhelper_ns::function_id::kSetGlobalPropertiesID,
+ "SetGlobalProperties"));
+
+ isInitialized = true;
+ }
+
+ return enumStringRepresentationMap;
+}
+
+template <>
+const std::map<testhelper_ns::message_type::EType, std::string> &
+smartobjects_ns::TEnumSchemaItem<testhelper_ns::message_type::EType>
+ ::getEnumElementsStringRepresentation(void) {
+ static bool isInitialized = false;
+ static std::map<testhelper_ns::message_type::EType, std::string>
+ enumStringRepresentationMap;
+
+ if (false == isInitialized) {
+ enumStringRepresentationMap.insert(std::make_pair(
+ testhelper_ns::message_type::kRequest, "request"));
+ enumStringRepresentationMap.insert(std::make_pair(
+ testhelper_ns::message_type::kResponse, "response"));
+ enumStringRepresentationMap.insert(std::make_pair(
+ testhelper_ns::message_type::kNotification, "notification"));
+
+ isInitialized = true;
+ }
+
+ return enumStringRepresentationMap;
+}
+}}
+
+int main(int argc, char **argv) {
+ ::testing::InitGoogleMock(&argc, argv);
+ return RUN_ALL_TESTS();
+}