summaryrefslogtreecommitdiff
path: root/src/components/formatters/test/formatter_json_rpc_test.cc
diff options
context:
space:
mode:
authorVeronica Veremjova <VVeremjova@luxoft.com>2015-12-23 15:42:48 +0200
committerVeronica Veremjova <VVeremjova@luxoft.com>2015-12-25 11:34:13 +0200
commit9a81ef55b6e96ba42dde5deda9804f1d31126116 (patch)
tree7ef791aa50193d15f82ff1bcfb7aba08cb7b39a6 /src/components/formatters/test/formatter_json_rpc_test.cc
parentcc166d8a26bf4f612cace366f51f805a297d72f9 (diff)
downloadsdl_core-9a81ef55b6e96ba42dde5deda9804f1d31126116.tar.gz
Add unit tests for formatter json
Added tests for converting smart object with response and error response types into string Relates: APPLINK-20090
Diffstat (limited to 'src/components/formatters/test/formatter_json_rpc_test.cc')
-rw-r--r--src/components/formatters/test/formatter_json_rpc_test.cc219
1 files changed, 169 insertions, 50 deletions
diff --git a/src/components/formatters/test/formatter_json_rpc_test.cc b/src/components/formatters/test/formatter_json_rpc_test.cc
index 24bdc2fa3f..e4bef19cae 100644
--- a/src/components/formatters/test/formatter_json_rpc_test.cc
+++ b/src/components/formatters/test/formatter_json_rpc_test.cc
@@ -30,9 +30,10 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include <algorithm>
-#include "gtest/gtest.h"
#include "formatters/formatter_json_rpc.h"
+#include <string>
+#include <set>
+#include "gtest/gtest.h"
#include "formatters/CSmartFactory.hpp"
#include "HMI_API_schema.h"
#include "MOBILE_API_schema.h"
@@ -45,7 +46,7 @@ using namespace NsSmartDeviceLink::NsSmartObjects;
using namespace NsSmartDeviceLink::NsJSONHandler::Formatters;
using namespace NsSmartDeviceLink::NsJSONHandler::strings;
-TEST(FormatterJsonRPCTest, CorrectRPCv1_request_SmartObjectToString_EXPECT_SUCCESS) {
+TEST(FormatterJsonRPCTest, CorrectRPCv1Request_ToString_Success) {
// Create SmartObject
SmartObject obj;
obj[S_PARAMS][S_FUNCTION_ID] = hmi_apis::FunctionID::VR_IsReady;
@@ -59,15 +60,15 @@ TEST(FormatterJsonRPCTest, CorrectRPCv1_request_SmartObjectToString_EXPECT_SUCCE
EXPECT_TRUE(factory.attachSchema(obj));
std::string result;
- // Convert SmrtObject to Json string
+ // Convert SmartObject to Json string
EXPECT_TRUE(FormatterJsonRpc::ToString(obj, result));
- EXPECT_EQ(
- std::string(
- "{\n \"id\" : 4444,\n \"jsonrpc\" : \"2.0\",\n \"method\" : \"VR.IsReady\"\n}\n"),
- result);
+ EXPECT_EQ(std::string(
+ "{\n \"id\" : 4444,\n \"jsonrpc\" : \"2.0\",\n "
+ "\"method\" : \"VR.IsReady\"\n}\n"),
+ result);
}
-TEST(FormatterJsonRPCTest, CorrectRPCv2_request_SmartObjectToString_EXPECT_SUCCESS) {
+TEST(FormatterJsonRPCTest, CorrectRPCv2Request_ToString_Success) {
// Create SmartObject
SmartObject obj;
obj[S_PARAMS][S_FUNCTION_ID] = mobile_apis::FunctionID::AddCommandID;
@@ -79,15 +80,15 @@ TEST(FormatterJsonRPCTest, CorrectRPCv2_request_SmartObjectToString_EXPECT_SUCCE
EXPECT_TRUE(factory.attachSchema(obj));
std::string result;
- // Convert SmrtObject to Json string
+ // Convert SmartObject to Json string
EXPECT_TRUE(FormatterJsonRpc::ToString(obj, result));
- EXPECT_EQ(
- std::string(
- "{\n \"id\" : 4444,\n \"jsonrpc\" : \"2.0\",\n \"method\" : \"AddCommandID\"\n}\n"),
- result);
+ EXPECT_EQ(std::string(
+ "{\n \"id\" : 4444,\n \"jsonrpc\" : \"2.0\",\n "
+ "\"method\" : \"AddCommandID\"\n}\n"),
+ result);
}
-TEST(FormatterJsonRPCTest, CorrectRPCv1_notification_SmartObjectToString_EXPECT_SUCCESS) {
+TEST(FormatterJsonRPCTest, CorrectRPCv1Notification_ToString_Success) {
// Create SmartObject
SmartObject obj;
std::string result;
@@ -100,20 +101,137 @@ TEST(FormatterJsonRPCTest, CorrectRPCv1_notification_SmartObjectToString_EXPECT_
// Attach Schema
hmi_apis::HMI_API factory;
EXPECT_TRUE(factory.attachSchema(obj));
- // Convert SmrtObject to Json string
+ // Convert SmartObject to Json string
+ EXPECT_TRUE(FormatterJsonRpc::ToString(obj, result));
+ EXPECT_EQ(std::string(
+ "{\n \"jsonrpc\" : \"2.0\",\n \"method\" : "
+ "\"Buttons.OnButtonPress\",\n \"params\" : {}\n}\n"),
+ result);
+}
+
+TEST(FormatterJsonRPCTest, CorrectResponseToString_Success) {
+ // Create SmartObject
+ SmartObject obj;
+ obj[S_PARAMS][S_FUNCTION_ID] = hmi_apis::FunctionID::VR_AddCommand;
+ obj[S_PARAMS][S_MESSAGE_TYPE] = hmi_apis::messageType::response;
+ obj[S_PARAMS][S_CORRELATION_ID] = 4440;
+ obj[S_PARAMS][kCode] = hmi_apis::Common_Result::SUCCESS;
+ obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map);
+ // Attach Schema
+ hmi_apis::HMI_API factory;
+ EXPECT_TRUE(factory.attachSchema(obj));
+
+ std::string result;
+ // Convert SmartObject to Json string
+ EXPECT_TRUE(FormatterJsonRpc::ToString(obj, result));
+ EXPECT_EQ(std::string(
+ "{\n \"id\" : 4440,\n \"jsonrpc\" : \"2.0\",\n "
+ "\"result\" : {\n \"code\" : 0,\n \"method\" : "
+ "\"VR.AddCommand\"\n }\n}\n"),
+ result);
+}
+
+TEST(FormatterJsonRPCTest, ErrorResponse_ToString_Success) {
+ // Create SmartObject
+ SmartObject obj;
+ obj[S_PARAMS][S_FUNCTION_ID] = hmi_apis::FunctionID::VR_AddCommand;
+ obj[S_PARAMS][S_MESSAGE_TYPE] = hmi_apis::messageType::error_response;
+ obj[S_PARAMS][S_CORRELATION_ID] = 4440;
+ obj[S_PARAMS][kCode] = hmi_apis::Common_Result::GENERIC_ERROR;
+ obj[S_PARAMS][kMessage] = "Some error";
+ obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map);
+ // Attach Schema
+ hmi_apis::HMI_API factory;
+ EXPECT_TRUE(factory.attachSchema(obj));
+
+ std::string result;
+ // Convert SmartObject to Json string
+ EXPECT_TRUE(FormatterJsonRpc::ToString(obj, result));
+ EXPECT_EQ(std::string(
+ "{\n \"error\" : {\n \"code\" : 22,\n \"data\" : "
+ "{\n \"method\" : \"VR.AddCommand\"\n },\n "
+ "\"message\" : \"Some error\"\n },\n \"id\" : 4440,\n "
+ "\"jsonrpc\" : \"2.0\"\n}\n"),
+ result);
+}
+
+TEST(FormatterJsonRPCTest, ResponseWithoutCode_ToString_Success) {
+ // Create SmartObject
+ SmartObject obj;
+ obj[S_PARAMS][S_FUNCTION_ID] = hmi_apis::FunctionID::VR_AddCommand;
+ obj[S_PARAMS][S_MESSAGE_TYPE] = hmi_apis::messageType::response;
+ obj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ obj[S_PARAMS][S_PROTOCOL_TYPE] = 1;
+ obj[S_PARAMS][S_CORRELATION_ID] = 4444;
+ obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map);
+ // Attach Schema
+ hmi_apis::HMI_API factory;
+ EXPECT_TRUE(factory.attachSchema(obj));
+
+ std::string result;
+ // Convert SmartObject to Json string will finish wrong
+ EXPECT_FALSE(FormatterJsonRpc::ToString(obj, result));
+}
+
+TEST(FormatterJsonRPCTest, RequestWithoutMSGParams_ToString_Success) {
+ // Create SmartObject
+ SmartObject obj;
+ obj[S_PARAMS][S_FUNCTION_ID] = mobile_apis::FunctionID::AddCommandID;
+ obj[S_PARAMS][S_MESSAGE_TYPE] = mobile_apis::messageType::request;
+ obj[S_PARAMS][S_CORRELATION_ID] = 4444;
+ // Attach Schema
+ mobile_apis::MOBILE_API factory;
+ EXPECT_TRUE(factory.attachSchema(obj));
+
+ std::string result;
+ // Convert SmartObject to Json string
EXPECT_TRUE(FormatterJsonRpc::ToString(obj, result));
- EXPECT_EQ(
- std::string(
- "{\n \"jsonrpc\" : \"2.0\",\n \"method\" : \"Buttons.OnButtonPress\",\n \"params\" : {}\n}\n"),
- result);
+ EXPECT_EQ(std::string(
+ "{\n \"id\" : 4444,\n \"jsonrpc\" : \"2.0\",\n "
+ "\"method\" : \"AddCommandID\"\n}\n"),
+ result);
}
-TEST(FormatterJsonRPCTest, InvalidRPC_SmartObjectToString_EXPECT_FALSE) {
+TEST(FormatterJsonRPCTest, RequestWithoutCorID_ToString_Fail) {
// Create SmartObject
SmartObject obj;
+ obj[S_PARAMS][S_FUNCTION_ID] = mobile_apis::FunctionID::AddCommandID;
+ obj[S_PARAMS][S_MESSAGE_TYPE] = mobile_apis::messageType::request;
+ obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map);
+ // Attach Schema
+ mobile_apis::MOBILE_API factory;
+ EXPECT_TRUE(factory.attachSchema(obj));
+
+ std::string result;
+ // Converting SmartObject to Json string is failed
+ EXPECT_FALSE(FormatterJsonRpc::ToString(obj, result));
+ EXPECT_EQ(std::string(
+ "{\n \"jsonrpc\" : \"2.0\",\n \"method\" : "
+ "\"AddCommandID\"\n}\n"),
+ result);
+}
+
+TEST(FormatterJsonRPCTest, RequestWithoutType_ToString_Fail) {
+ // Create SmartObject
+ SmartObject obj;
+ obj[S_PARAMS][S_FUNCTION_ID] = mobile_apis::FunctionID::AddCommandID;
+ obj[S_MSG_PARAMS] = SmartObject(SmartType::SmartType_Map);
+ // Attach Schema is impossible
+ mobile_apis::MOBILE_API factory;
+ EXPECT_FALSE(factory.attachSchema(obj));
+
+ std::string result;
+ // Converting SmartObject to Json string is failed
+ EXPECT_FALSE(FormatterJsonRpc::ToString(obj, result));
+ EXPECT_EQ(std::string("{\n \"jsonrpc\" : \"2.0\"\n}\n"), result);
+}
+
+TEST(FormatterJsonRPCTest, InvalidRPC_ToString_False) {
+ // Create SmartObject with notification id and response message type
+ SmartObject obj;
std::string result;
obj[S_PARAMS][S_FUNCTION_ID] =
- hmi_apis::FunctionID::BasicCommunication_OnReady;
+ hmi_apis::FunctionID::BasicCommunication_OnReady;
obj[S_PARAMS][S_MESSAGE_TYPE] = hmi_apis::messageType::response;
obj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
obj[S_PARAMS][S_PROTOCOL_TYPE] = 1;
@@ -122,78 +240,79 @@ TEST(FormatterJsonRPCTest, InvalidRPC_SmartObjectToString_EXPECT_FALSE) {
// Attach Schema
hmi_apis::HMI_API factory;
EXPECT_FALSE(factory.attachSchema(obj));
- // Convert SmrtObject to Json string
+ // Convert SmartObject to Json string
EXPECT_FALSE(FormatterJsonRpc::ToString(obj, result));
// Expect result with default value. No correct conversion was done
EXPECT_EQ(std::string("{\n \"jsonrpc\" : \"2.0\"\n}\n"), result);
}
-TEST(FormatterJsonRPCTest, FromStringNotificationToSmartObj_ExpectSuccess) {
+TEST(FormatterJsonRPCTest, Notification_ToSmartObject_Success) {
// Source Json string
const std::string json_string(
- "{\n \"jsonrpc\" : \"2.0\",\n \"method\" : \"BasicCommunication.OnReady\",\n \"params\" : {}\n}\n");
+ "{\n \"jsonrpc\" : \"2.0\",\n \"method\" : "
+ "\"BasicCommunication.OnReady\",\n \"params\" : {}\n}\n");
// Smart Object to keep result
SmartObject obj;
// Convert json string to smart object
- EXPECT_EQ(
- 0,
- (FormatterJsonRpc::FromString<hmi_apis::FunctionID::eType,
- hmi_apis::messageType::eType>(json_string, obj)));
+ int32_t result = FormatterJsonRpc::FromString<hmi_apis::FunctionID::eType,
+ hmi_apis::messageType::eType>(
+ json_string, obj);
+ EXPECT_EQ(0, result);
// Get keys collection from Smart Object
std::set<std::string> keys = obj["params"].enumerate();
EXPECT_EQ(4u, keys.size());
}
-TEST(FormatterJsonRPCTest, FromStringToSmartObjInvalidFormat_ExpectFalse) {
+TEST(FormatterJsonRPCTest, InvalidFormatToSmartObject_False) {
// Source Json string
const std::string json_string(
- "{\n \"method\" : \"BasicCommunication.OnReady\",\n \"params\" : {}\n}\n");
+ "{\n \"method\" : \"BasicCommunication.OnReady\",\n \"params\" : "
+ "{}\n}\n");
// Smart Object to keep result
SmartObject obj;
// Convert json string to smart object
- EXPECT_EQ(
- 2,
- (FormatterJsonRpc::FromString<hmi_apis::FunctionID::eType,
- hmi_apis::messageType::eType>(json_string, obj)));
+ int32_t result = FormatterJsonRpc::FromString<hmi_apis::FunctionID::eType,
+ hmi_apis::messageType::eType>(
+ json_string, obj);
+ EXPECT_EQ(2, result);
// Get keys collection from Smart Object
std::set<std::string> keys = obj["params"].enumerate();
EXPECT_EQ(4u, keys.size());
}
-TEST(FormatterJsonRPCTest, FromStringRequestToSmartObj_ExpectSuccess) {
+TEST(FormatterJsonRPCTest, RequestToSmartObject_Success) {
// Source Json string
const std::string json_string(
- "{\n \"id\" : 4444,\n \"jsonrpc\" : \"2.0\",\n \"method\" : \"VR.IsReady\"\n}\n");
+ "{\n \"id\" : 4444,\n \"jsonrpc\" : \"2.0\",\n \"method\" : "
+ "\"VR.IsReady\"\n}\n");
// Smart Object to keep result
SmartObject obj;
// Convert json string to smart object
- EXPECT_EQ(
- 0,
- (FormatterJsonRpc::FromString<hmi_apis::FunctionID::eType,
- hmi_apis::messageType::eType>(json_string, obj)));
+ int32_t result = FormatterJsonRpc::FromString<hmi_apis::FunctionID::eType,
+ hmi_apis::messageType::eType>(
+ json_string, obj);
+ EXPECT_EQ(0, result);
// Get keys collection from Smart Object
std::set<std::string> keys = obj["params"].enumerate();
- std::set<std::string>::iterator it1 = keys.begin();
EXPECT_EQ(5u, keys.size());
}
-TEST(FormatterJsonRPCTest, FromStringResponseToSmartObj_ExpectSuccess) {
+TEST(FormatterJsonRPCTest, ResponseToSmartObject_Success) {
// Source Json string
const std::string json_string(
- "{\n \"id\" : 4444,\n \"jsonrpc\" : \"2.0\",\n \"method\" : \"VR.IsReady\"\n}\n");
+ "{\n \"id\" : 4444,\n \"jsonrpc\" : \"2.0\",\n \"method\" : "
+ "\"VR.IsReady\"\n}\n");
// Smart Object to keep result
SmartObject obj;
// Convert json string to smart object
- EXPECT_EQ(
- 0,
- (FormatterJsonRpc::FromString<hmi_apis::FunctionID::eType,
- hmi_apis::messageType::eType>(json_string, obj)));
+ int32_t result = FormatterJsonRpc::FromString<hmi_apis::FunctionID::eType,
+ hmi_apis::messageType::eType>(
+ json_string, obj);
+ EXPECT_EQ(0, result);
// Get keys collection from Smart Object
std::set<std::string> keys = obj["params"].enumerate();
- std::set<std::string>::iterator it1 = keys.begin();
EXPECT_EQ(5u, keys.size());
}
-
} // namespace formatters
} // namespace components
} // namespace test