17c804472Sopenharmony_ci/*
27c804472Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
37c804472Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
47c804472Sopenharmony_ci * you may not use this file except in compliance with the License.
57c804472Sopenharmony_ci * You may obtain a copy of the License at
67c804472Sopenharmony_ci *
77c804472Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
87c804472Sopenharmony_ci *
97c804472Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
107c804472Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
117c804472Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127c804472Sopenharmony_ci * See the License for the specific language governing permissions and
137c804472Sopenharmony_ci * limitations under the License.
147c804472Sopenharmony_ci */
157c804472Sopenharmony_ci#include <string>
167c804472Sopenharmony_ci#include <map>
177c804472Sopenharmony_ci#include "gtest/gtest.h"
187c804472Sopenharmony_ci#define private public
197c804472Sopenharmony_ci#define protected public
207c804472Sopenharmony_ci#include "CommandLineFactory.h"
217c804472Sopenharmony_ci#include "CommandParser.h"
227c804472Sopenharmony_ci#include "JsAppImpl.h"
237c804472Sopenharmony_ci#include "MockGlobalResult.h"
247c804472Sopenharmony_ci#include "VirtualScreenImpl.h"
257c804472Sopenharmony_ci#include "KeyInputImpl.h"
267c804472Sopenharmony_ci#include "MouseInputImpl.h"
277c804472Sopenharmony_ci#include "SharedData.h"
287c804472Sopenharmony_ci#include "MouseWheelImpl.h"
297c804472Sopenharmony_ci#include "Interrupter.h"
307c804472Sopenharmony_ci
317c804472Sopenharmony_cinamespace {
327c804472Sopenharmony_ci    class CommandLineTest : public ::testing::Test {
337c804472Sopenharmony_ci    public:
347c804472Sopenharmony_ci        CommandLineTest() {}
357c804472Sopenharmony_ci        ~CommandLineTest() {}
367c804472Sopenharmony_ci        static std::unique_ptr<LocalSocket> socket;
377c804472Sopenharmony_ci    protected:
387c804472Sopenharmony_ci        static void SetUpTestCase()
397c804472Sopenharmony_ci        {
407c804472Sopenharmony_ci            socket = std::make_unique<LocalSocket>();
417c804472Sopenharmony_ci            SharedData<bool>(SharedDataType::KEEP_SCREEN_ON, true);
427c804472Sopenharmony_ci            SharedData<uint8_t>(SharedDataType::BATTERY_STATUS, (uint8_t)ChargeState::NOCHARGE,
437c804472Sopenharmony_ci                                (uint8_t)ChargeState::NOCHARGE, (uint8_t)ChargeState::CHARGING);
447c804472Sopenharmony_ci            // The brightness ranges from 1 to 255. The default value is 255.
457c804472Sopenharmony_ci            SharedData<uint8_t>(SharedDataType::BRIGHTNESS_VALUE, 255, 1, 255);
467c804472Sopenharmony_ci            SharedData<uint8_t>(SharedDataType::BRIGHTNESS_MODE, (uint8_t)BrightnessMode::MANUAL,
477c804472Sopenharmony_ci                                (uint8_t)BrightnessMode::MANUAL, (uint8_t)BrightnessMode::AUTO);
487c804472Sopenharmony_ci            // The value ranges from 0 to 999999. The default value is 0.
497c804472Sopenharmony_ci            SharedData<uint32_t>(SharedDataType::SUMSTEP_VALUE, 0, 0, 999999);
507c804472Sopenharmony_ci            // The volume ranges from 0.0 to 1.0. The default value is 1.0.
517c804472Sopenharmony_ci            SharedData<double>(SharedDataType::VOLUME_VALUE, 1.0, 0.0, 1.0);
527c804472Sopenharmony_ci            // Battery level range: 0.0–1.0; default: 1.0
537c804472Sopenharmony_ci            SharedData<double>(SharedDataType::BATTERY_LEVEL, 1.0, 0.0, 1.0);
547c804472Sopenharmony_ci            // Heart rate range: 0 to 255. The default value is 80.
557c804472Sopenharmony_ci            SharedData<uint8_t>(SharedDataType::HEARTBEAT_VALUE, 80, 0, 255);
567c804472Sopenharmony_ci            SharedData<std::string>(SharedDataType::LANGUAGE, "zh-CN");
577c804472Sopenharmony_ci            // The value ranges from 180 to 180. The default value is 0.
587c804472Sopenharmony_ci            SharedData<double>(SharedDataType::LONGITUDE, 0, -180, 180);
597c804472Sopenharmony_ci            // The atmospheric pressure ranges from 0 to 999900. The default value is 101325.
607c804472Sopenharmony_ci            SharedData<uint32_t>(SharedDataType::PRESSURE_VALUE, 101325, 0, 999900);
617c804472Sopenharmony_ci            SharedData<bool>(SharedDataType::WEARING_STATE, true);
627c804472Sopenharmony_ci            // The value ranges from -90 to 90. The default value is 0.
637c804472Sopenharmony_ci            SharedData<double>(SharedDataType::LATITUDE, 0, -90, 90);
647c804472Sopenharmony_ci        }
657c804472Sopenharmony_ci    };
667c804472Sopenharmony_ci
677c804472Sopenharmony_ci    std::unique_ptr<LocalSocket> CommandLineTest::socket = nullptr;
687c804472Sopenharmony_ci
697c804472Sopenharmony_ci
707c804472Sopenharmony_ci    TEST_F(CommandLineTest, BackClickedCommandTest)
717c804472Sopenharmony_ci    {
727c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
737c804472Sopenharmony_ci        std::string msg = "{\"args\":null}";
747c804472Sopenharmony_ci        Json2::Value args = JsonReader::ParseJsonData2(msg);
757c804472Sopenharmony_ci        BackClickedCommand command(type, args, *socket);
767c804472Sopenharmony_ci        g_dispatchOsBackEvent = false;
777c804472Sopenharmony_ci        command.CheckAndRun();
787c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchOsBackEvent);
797c804472Sopenharmony_ci    }
807c804472Sopenharmony_ci
817c804472Sopenharmony_ci    TEST_F(CommandLineTest, InspectorJSONTreeTest)
827c804472Sopenharmony_ci    {
837c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
847c804472Sopenharmony_ci        Json2::Value args;
857c804472Sopenharmony_ci        InspectorJSONTree command(type, args, *socket);
867c804472Sopenharmony_ci        g_getJSONTree = false;
877c804472Sopenharmony_ci        command.CheckAndRun();
887c804472Sopenharmony_ci        EXPECT_TRUE(g_getJSONTree);
897c804472Sopenharmony_ci    }
907c804472Sopenharmony_ci
917c804472Sopenharmony_ci    TEST_F(CommandLineTest, InspectorDefaultTest)
927c804472Sopenharmony_ci    {
937c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
947c804472Sopenharmony_ci        Json2::Value args;
957c804472Sopenharmony_ci        InspectorDefault command(type, args, *socket);
967c804472Sopenharmony_ci        g_getDefaultJSONTree = false;
977c804472Sopenharmony_ci        command.CheckAndRun();
987c804472Sopenharmony_ci        EXPECT_TRUE(g_getDefaultJSONTree);
997c804472Sopenharmony_ci    }
1007c804472Sopenharmony_ci
1017c804472Sopenharmony_ci    TEST_F(CommandLineTest, OrientationCommandTest)
1027c804472Sopenharmony_ci    {
1037c804472Sopenharmony_ci        JsAppImpl::GetInstance().orientation = "";
1047c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
1057c804472Sopenharmony_ci        // args是null
1067c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
1077c804472Sopenharmony_ci        OrientationCommand command1(type, args1, *socket);
1087c804472Sopenharmony_ci        command1.CheckAndRun();
1097c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "");
1107c804472Sopenharmony_ci        // 无Orientation
1117c804472Sopenharmony_ci        std::string jsonStr = "{\"aaaa\":\"landscape\"}";
1127c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr);
1137c804472Sopenharmony_ci        OrientationCommand command2(type, args2, *socket);
1147c804472Sopenharmony_ci        command2.CheckAndRun();
1157c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "");
1167c804472Sopenharmony_ci        // 有Orientation,但不是string类型
1177c804472Sopenharmony_ci        jsonStr = "{\"Orientation\":\"aaaaa\"}";
1187c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(jsonStr);
1197c804472Sopenharmony_ci        OrientationCommand command3(type, args3, *socket);
1207c804472Sopenharmony_ci        command3.CheckAndRun();
1217c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "");
1227c804472Sopenharmony_ci        // Orientation : landscape
1237c804472Sopenharmony_ci        jsonStr = "{\"Orientation\":\"landscape\"}";
1247c804472Sopenharmony_ci        Json2::Value args4 = JsonReader::ParseJsonData2(jsonStr);
1257c804472Sopenharmony_ci        OrientationCommand command4(type, args4, *socket);
1267c804472Sopenharmony_ci        g_output = false;
1277c804472Sopenharmony_ci        command4.CheckAndRun();
1287c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
1297c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "landscape");
1307c804472Sopenharmony_ci        // Orientation : portrait
1317c804472Sopenharmony_ci        args4.Replace("Orientation", "portrait");
1327c804472Sopenharmony_ci        OrientationCommand command5(type, args4, *socket);
1337c804472Sopenharmony_ci        command5.CheckAndRun();
1347c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().GetOrientation(), "portrait");
1357c804472Sopenharmony_ci    }
1367c804472Sopenharmony_ci
1377c804472Sopenharmony_ci    // 参数异常
1387c804472Sopenharmony_ci    TEST_F(CommandLineTest, ResolutionSwitchCommandArgsTest)
1397c804472Sopenharmony_ci    {
1407c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
1417c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
1427c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
1437c804472Sopenharmony_ci        // null
1447c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
1457c804472Sopenharmony_ci        ResolutionSwitchCommand command1(type, args1, *socket);
1467c804472Sopenharmony_ci        command1.CheckAndRun();
1477c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().width, 0);
1487c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().height, 0);
1497c804472Sopenharmony_ci        // 缺失参数
1507c804472Sopenharmony_ci        std::string jsonStr = R"({"aaaaa":1080,"originHeight":2340,"width":1080,"height":2340,"screenDensity":480})";
1517c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr);
1527c804472Sopenharmony_ci        ResolutionSwitchCommand command3(type, args2, *socket);
1537c804472Sopenharmony_ci        command3.CheckAndRun();
1547c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().width, 1080);
1557c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().height, 2340);
1567c804472Sopenharmony_ci    }
1577c804472Sopenharmony_ci
1587c804472Sopenharmony_ci    // 参数类型异常
1597c804472Sopenharmony_ci    TEST_F(CommandLineTest, ResolutionSwitchCommandArgsTypeTest)
1607c804472Sopenharmony_ci    {
1617c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
1627c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
1637c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
1647c804472Sopenharmony_ci        std::string jsonStr = R"({"originWidth":"1080","originHeight":2340,"width":1080,
1657c804472Sopenharmony_ci            "height":2340,"screenDensity":480})";
1667c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr);
1677c804472Sopenharmony_ci        ResolutionSwitchCommand command3(type, args2, *socket);
1687c804472Sopenharmony_ci        command3.CheckAndRun();
1697c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().width, 1080);
1707c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().height, 2340);
1717c804472Sopenharmony_ci
1727c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
1737c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
1747c804472Sopenharmony_ci        std::string jsonStr1 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080,
1757c804472Sopenharmony_ci            "height" : 2340, "screenDensity" : 480, "reason" : 333})";
1767c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(jsonStr1);
1777c804472Sopenharmony_ci        ResolutionSwitchCommand command1(type, args1, *socket);
1787c804472Sopenharmony_ci        command1.CheckAndRun();
1797c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().width, 0);
1807c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().height, 0);
1817c804472Sopenharmony_ci    }
1827c804472Sopenharmony_ci
1837c804472Sopenharmony_ci    // 参数范围异常
1847c804472Sopenharmony_ci    TEST_F(CommandLineTest, ResolutionSwitchCommandArgsRangesTest)
1857c804472Sopenharmony_ci    {
1867c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
1877c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
1887c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
1897c804472Sopenharmony_ci        std::string jsonStr = R"({"originWidth":5000,"originHeight":2340,"width":1080,
1907c804472Sopenharmony_ci            "height":2340,"screenDensity":480})";
1917c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr);
1927c804472Sopenharmony_ci        ResolutionSwitchCommand command3(type, args2, *socket);
1937c804472Sopenharmony_ci        command3.CheckAndRun();
1947c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().width, 1080);
1957c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().height, 2340);
1967c804472Sopenharmony_ci
1977c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
1987c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
1997c804472Sopenharmony_ci        std::string jsonStr1 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080,
2007c804472Sopenharmony_ci            "height" : 2340, "screenDensity" : 480, "reason" : "aaa"})";
2017c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(jsonStr1);
2027c804472Sopenharmony_ci        ResolutionSwitchCommand command1(type, args1, *socket);
2037c804472Sopenharmony_ci        command1.CheckAndRun();
2047c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().width, 0);
2057c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().height, 0);
2067c804472Sopenharmony_ci
2077c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
2087c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
2097c804472Sopenharmony_ci        std::string jsonStr4 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080,
2107c804472Sopenharmony_ci            "height" : 2340, "screenDensity" : 100, "reason" : "resize"})";
2117c804472Sopenharmony_ci        Json2::Value args4 = JsonReader::ParseJsonData2(jsonStr4);
2127c804472Sopenharmony_ci        ResolutionSwitchCommand command4(type, args4, *socket);
2137c804472Sopenharmony_ci        command4.CheckAndRun();
2147c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().width, 0);
2157c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().height, 0);
2167c804472Sopenharmony_ci
2177c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
2187c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
2197c804472Sopenharmony_ci        std::string jsonStr5 = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080,
2207c804472Sopenharmony_ci            "height" : 2340, "screenDensity" : 700, "reason" : "resize"})";
2217c804472Sopenharmony_ci        Json2::Value args5 = JsonReader::ParseJsonData2(jsonStr5);
2227c804472Sopenharmony_ci        ResolutionSwitchCommand command5(type, args5, *socket);
2237c804472Sopenharmony_ci        command5.CheckAndRun();
2247c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().width, 0);
2257c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().height, 0);
2267c804472Sopenharmony_ci    }
2277c804472Sopenharmony_ci
2287c804472Sopenharmony_ci    // 参数正常
2297c804472Sopenharmony_ci    TEST_F(CommandLineTest, ResolutionSwitchCommandArgsCorrectTest)
2307c804472Sopenharmony_ci    {
2317c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
2327c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
2337c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
2347c804472Sopenharmony_ci        std::string jsonStr = R"({"originWidth" : 1080, "originHeight" : 2340, "width" : 1080,
2357c804472Sopenharmony_ci            "height" : 2340, "screenDensity" : 480, "reason" : "resize"})";
2367c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(jsonStr);
2377c804472Sopenharmony_ci        ResolutionSwitchCommand command3(type, args2, *socket);
2387c804472Sopenharmony_ci        command3.CheckAndRun();
2397c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().width, 1080);
2407c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().height, 2340);
2417c804472Sopenharmony_ci    }
2427c804472Sopenharmony_ci
2437c804472Sopenharmony_ci    TEST_F(CommandLineTest, CurrentRouterCommandTest)
2447c804472Sopenharmony_ci    {
2457c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
2467c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateObject();
2477c804472Sopenharmony_ci        CurrentRouterCommand command3(type, args1, *socket);
2487c804472Sopenharmony_ci        g_getCurrentRouter = false;
2497c804472Sopenharmony_ci        command3.CheckAndRun();
2507c804472Sopenharmony_ci        EXPECT_TRUE(g_getCurrentRouter);
2517c804472Sopenharmony_ci    }
2527c804472Sopenharmony_ci
2537c804472Sopenharmony_ci    TEST_F(CommandLineTest, ReloadRuntimePageCommandTest)
2547c804472Sopenharmony_ci    {
2557c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
2567c804472Sopenharmony_ci        std::string msg = "{\"ReloadRuntimePage\":\"aaa\"}";
2577c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg);
2587c804472Sopenharmony_ci        ReloadRuntimePageCommand command(type, args2, *socket);
2597c804472Sopenharmony_ci        g_reloadRuntimePage = false;
2607c804472Sopenharmony_ci        command.CheckAndRun();
2617c804472Sopenharmony_ci        EXPECT_TRUE(g_reloadRuntimePage);
2627c804472Sopenharmony_ci
2637c804472Sopenharmony_ci        std::string msg2 = "{\"ReloadRuntimePage\" : 222}";
2647c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg2);
2657c804472Sopenharmony_ci        ReloadRuntimePageCommand command3(type, args3, *socket);
2667c804472Sopenharmony_ci        g_reloadRuntimePage = false;
2677c804472Sopenharmony_ci        command3.CheckAndRun();
2687c804472Sopenharmony_ci        EXPECT_FALSE(g_reloadRuntimePage);
2697c804472Sopenharmony_ci    }
2707c804472Sopenharmony_ci
2717c804472Sopenharmony_ci    TEST_F(CommandLineTest, ToUint8Test)
2727c804472Sopenharmony_ci    {
2737c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
2747c804472Sopenharmony_ci        // null
2757c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
2767c804472Sopenharmony_ci        ResolutionSwitchCommand command1(type, args1, *socket);
2777c804472Sopenharmony_ci        EXPECT_EQ(command1.ToUint8("256"), 0);
2787c804472Sopenharmony_ci    }
2797c804472Sopenharmony_ci
2807c804472Sopenharmony_ci    TEST_F(CommandLineTest, IsBoolTypeTest)
2817c804472Sopenharmony_ci    {
2827c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
2837c804472Sopenharmony_ci        // null
2847c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
2857c804472Sopenharmony_ci        ResolutionSwitchCommand command1(type, args1, *socket);
2867c804472Sopenharmony_ci        EXPECT_TRUE(command1.IsBoolType("true"));
2877c804472Sopenharmony_ci        EXPECT_FALSE(command1.IsBoolType("XX"));
2887c804472Sopenharmony_ci    }
2897c804472Sopenharmony_ci
2907c804472Sopenharmony_ci    TEST_F(CommandLineTest, IsIntTypeTest)
2917c804472Sopenharmony_ci    {
2927c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
2937c804472Sopenharmony_ci        // null
2947c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
2957c804472Sopenharmony_ci        ResolutionSwitchCommand command1(type, args1, *socket);
2967c804472Sopenharmony_ci        EXPECT_TRUE(command1.IsIntType("123"));
2977c804472Sopenharmony_ci    }
2987c804472Sopenharmony_ci
2997c804472Sopenharmony_ci    TEST_F(CommandLineTest, IsOneDigitFloatTypeTest)
3007c804472Sopenharmony_ci    {
3017c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
3027c804472Sopenharmony_ci        // null
3037c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
3047c804472Sopenharmony_ci        ResolutionSwitchCommand command1(type, args1, *socket);
3057c804472Sopenharmony_ci        EXPECT_TRUE(command1.IsOneDigitFloatType("-6", true));
3067c804472Sopenharmony_ci        EXPECT_TRUE(command1.IsOneDigitFloatType("3", false));
3077c804472Sopenharmony_ci    }
3087c804472Sopenharmony_ci
3097c804472Sopenharmony_ci    TEST_F(CommandLineTest, IsSetArgValidTest)
3107c804472Sopenharmony_ci    {
3117c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
3127c804472Sopenharmony_ci        // null
3137c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
3147c804472Sopenharmony_ci        ColorModeCommand command1(type, args1, *socket);
3157c804472Sopenharmony_ci        command1.RunSet();
3167c804472Sopenharmony_ci        EXPECT_FALSE(command1.IsSetArgValid());
3177c804472Sopenharmony_ci    }
3187c804472Sopenharmony_ci
3197c804472Sopenharmony_ci    TEST_F(CommandLineTest, FontSelectCommandTest)
3207c804472Sopenharmony_ci    {
3217c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
3227c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
3237c804472Sopenharmony_ci        FontSelectCommand command1(type, args1, *socket);
3247c804472Sopenharmony_ci        g_output = false;
3257c804472Sopenharmony_ci        command1.CheckAndRun();
3267c804472Sopenharmony_ci        command1.RunSet();
3277c804472Sopenharmony_ci        EXPECT_FALSE(command1.IsSetArgValid());
3287c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
3297c804472Sopenharmony_ci        std::string msg = "{\"FontSelect\":true}";
3307c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg);
3317c804472Sopenharmony_ci        FontSelectCommand command3(type, args2, *socket);
3327c804472Sopenharmony_ci        g_output = false;
3337c804472Sopenharmony_ci        command3.CheckAndRun();
3347c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
3357c804472Sopenharmony_ci    }
3367c804472Sopenharmony_ci
3377c804472Sopenharmony_ci    TEST_F(CommandLineTest, MemoryRefreshCommandTest)
3387c804472Sopenharmony_ci    {
3397c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
3407c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
3417c804472Sopenharmony_ci        MemoryRefreshCommand command1(type, args1, *socket);
3427c804472Sopenharmony_ci        g_memoryRefresh = false;
3437c804472Sopenharmony_ci        command1.CheckAndRun();
3447c804472Sopenharmony_ci        EXPECT_FALSE(g_memoryRefresh);
3457c804472Sopenharmony_ci        std::string msg = "{\"jsCode\":\"UEFOREEAAAAAAAAAAAAAA+wDAADEAAAAFQ\"}";
3467c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg);
3477c804472Sopenharmony_ci        MemoryRefreshCommand command3(type, args2, *socket);
3487c804472Sopenharmony_ci        g_memoryRefresh = false;
3497c804472Sopenharmony_ci        command3.CheckAndRun();
3507c804472Sopenharmony_ci        EXPECT_TRUE(g_memoryRefresh);
3517c804472Sopenharmony_ci    }
3527c804472Sopenharmony_ci
3537c804472Sopenharmony_ci    TEST_F(CommandLineTest, LoadDocumentCommandArgsTest)
3547c804472Sopenharmony_ci    {
3557c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
3567c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
3577c804472Sopenharmony_ci        LoadDocumentCommand command(type, args2, *socket);
3587c804472Sopenharmony_ci        g_loadDocument = false;
3597c804472Sopenharmony_ci        command.CheckAndRun();
3607c804472Sopenharmony_ci        EXPECT_FALSE(g_loadDocument);
3617c804472Sopenharmony_ci    }
3627c804472Sopenharmony_ci
3637c804472Sopenharmony_ci    TEST_F(CommandLineTest, LoadDocumentCommandArgsTypeTest)
3647c804472Sopenharmony_ci    {
3657c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
3667c804472Sopenharmony_ci        std::string msg = R"({"url":"pages/Index","className":"Index","previewParam":{"width":1080,
3677c804472Sopenharmony_ci            "height":"2340","locale":"zh_CN","colorMode":"light","orientation":"portrait",
3687c804472Sopenharmony_ci            "deviceType":"phone","dpi":480}})";
3697c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg);
3707c804472Sopenharmony_ci        LoadDocumentCommand command(type, args2, *socket);
3717c804472Sopenharmony_ci        g_loadDocument = false;
3727c804472Sopenharmony_ci        command.CheckAndRun();
3737c804472Sopenharmony_ci        EXPECT_FALSE(g_loadDocument);
3747c804472Sopenharmony_ci    }
3757c804472Sopenharmony_ci
3767c804472Sopenharmony_ci    TEST_F(CommandLineTest, LoadDocumentCommandArgsNumRangeTest)
3777c804472Sopenharmony_ci    {
3787c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
3797c804472Sopenharmony_ci        std::string msg = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080,
3807c804472Sopenharmony_ci            "height" : 2340, "locale" : "zh_CN" , "colorMode" : "light", "orientation" : "portrait",
3817c804472Sopenharmony_ci            "deviceType" : "phone", "dpi" : 720}})";
3827c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg);
3837c804472Sopenharmony_ci        LoadDocumentCommand command(type, args2, *socket);
3847c804472Sopenharmony_ci        g_loadDocument = false;
3857c804472Sopenharmony_ci        command.CheckAndRun();
3867c804472Sopenharmony_ci        EXPECT_FALSE(g_loadDocument);
3877c804472Sopenharmony_ci    }
3887c804472Sopenharmony_ci
3897c804472Sopenharmony_ci    TEST_F(CommandLineTest, LoadDocumentCommandArgsStrRangeTest)
3907c804472Sopenharmony_ci    {
3917c804472Sopenharmony_ci        CommandParser::GetInstance().deviceType = "phone";
3927c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
3937c804472Sopenharmony_ci        std::string msg = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080,
3947c804472Sopenharmony_ci            "height" : 2340, "locale" : "aa_PP", "colorMode" : "light", "orientation" : "portrait",
3957c804472Sopenharmony_ci            "deviceType" : "phone", "dpi" : 480}})";
3967c804472Sopenharmony_ci        Json2::Value args = JsonReader::ParseJsonData2(msg);
3977c804472Sopenharmony_ci        // locale error
3987c804472Sopenharmony_ci        LoadDocumentCommand command(type, args, *socket);
3997c804472Sopenharmony_ci        g_loadDocument = false;
4007c804472Sopenharmony_ci        command.CheckAndRun();
4017c804472Sopenharmony_ci        EXPECT_FALSE(g_loadDocument);
4027c804472Sopenharmony_ci        // colorMode error
4037c804472Sopenharmony_ci        std::string msg1 = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080,
4047c804472Sopenharmony_ci            "height" : 2340, "locale" : "zh_CN", "colorMode" : "aaa", "orientation" : "portrait",
4057c804472Sopenharmony_ci            "deviceType" : "phone", "dpi" : 480}})";
4067c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
4077c804472Sopenharmony_ci        LoadDocumentCommand command1(type, args1, *socket);
4087c804472Sopenharmony_ci        g_loadDocument = false;
4097c804472Sopenharmony_ci        command1.CheckAndRun();
4107c804472Sopenharmony_ci        EXPECT_FALSE(g_loadDocument);
4117c804472Sopenharmony_ci        // colorMode error
4127c804472Sopenharmony_ci        std::string msg2 = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080,
4137c804472Sopenharmony_ci            "height" : 2340, "locale" : "zh_CN", "colorMode" : "dark", "orientation" : "aaa",
4147c804472Sopenharmony_ci            "deviceType" : "phone", "dpi" : 480}})";
4157c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
4167c804472Sopenharmony_ci        LoadDocumentCommand command2(type, args2, *socket);
4177c804472Sopenharmony_ci        g_loadDocument = false;
4187c804472Sopenharmony_ci        command2.CheckAndRun();
4197c804472Sopenharmony_ci        EXPECT_FALSE(g_loadDocument);
4207c804472Sopenharmony_ci        // deviceType error
4217c804472Sopenharmony_ci        std::string msg3 = R"({"url" : "pages/Index", "className" : "Index", "previewParam" : {"width" : 1080,
4227c804472Sopenharmony_ci            "height" : 2340, "locale" : "zh_CN", "colorMode" : "dark", "orientation" : "landscape",
4237c804472Sopenharmony_ci            "deviceType" : "liteWearable", "dpi" : 480}})";
4247c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
4257c804472Sopenharmony_ci        LoadDocumentCommand command3(type, args3, *socket);
4267c804472Sopenharmony_ci        g_loadDocument = false;
4277c804472Sopenharmony_ci        command3.CheckAndRun();
4287c804472Sopenharmony_ci        EXPECT_FALSE(g_loadDocument);
4297c804472Sopenharmony_ci    }
4307c804472Sopenharmony_ci
4317c804472Sopenharmony_ci    TEST_F(CommandLineTest, LoadDocumentCommandArgsCorrectTest)
4327c804472Sopenharmony_ci    {
4337c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
4347c804472Sopenharmony_ci        CommandParser::GetInstance().deviceType = "phone";
4357c804472Sopenharmony_ci        std::string msg = R"({"url":"pages/Index","className":"Index","previewParam":{"width":1080,
4367c804472Sopenharmony_ci            "height":2340,"locale":"zh_CN","colorMode":"light","orientation":"portrait",
4377c804472Sopenharmony_ci            "deviceType":"phone","dpi":480}})";
4387c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg);
4397c804472Sopenharmony_ci        LoadDocumentCommand command1(type, args1, *socket);
4407c804472Sopenharmony_ci        g_loadDocument = false;
4417c804472Sopenharmony_ci        command1.CheckAndRun();
4427c804472Sopenharmony_ci        EXPECT_TRUE(g_loadDocument);
4437c804472Sopenharmony_ci
4447c804472Sopenharmony_ci        CommandParser::GetInstance().deviceType = "liteWearable";
4457c804472Sopenharmony_ci        msg = R"({"url":"pages/Index","className":"Index","previewParam":{"width":1080,
4467c804472Sopenharmony_ci            "height":2340,"locale":"zh_CN","colorMode":"light","orientation":"portrait",
4477c804472Sopenharmony_ci            "deviceType":"liteWearable","dpi":480}})";
4487c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg);
4497c804472Sopenharmony_ci        LoadDocumentCommand command2(type, args2, *socket);
4507c804472Sopenharmony_ci        g_loadDocument = false;
4517c804472Sopenharmony_ci        command2.CheckAndRun();
4527c804472Sopenharmony_ci        EXPECT_FALSE(g_loadDocument);
4537c804472Sopenharmony_ci    }
4547c804472Sopenharmony_ci
4557c804472Sopenharmony_ci    TEST_F(CommandLineTest, FastPreviewMsgCommandTest)
4567c804472Sopenharmony_ci    {
4577c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
4587c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
4597c804472Sopenharmony_ci        FastPreviewMsgCommand command2(type, args2, *socket);
4607c804472Sopenharmony_ci        g_getFastPreviewMsg = false;
4617c804472Sopenharmony_ci        command2.CheckAndRun();
4627c804472Sopenharmony_ci        EXPECT_TRUE(g_getFastPreviewMsg);
4637c804472Sopenharmony_ci    }
4647c804472Sopenharmony_ci
4657c804472Sopenharmony_ci    TEST_F(CommandLineTest, LoadContentCommandTest)
4667c804472Sopenharmony_ci    {
4677c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
4687c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
4697c804472Sopenharmony_ci        LoadContentCommand command2(type, args2, *socket);
4707c804472Sopenharmony_ci        g_getAbilityCurrentRouter = false;
4717c804472Sopenharmony_ci        command2.CheckAndRun();
4727c804472Sopenharmony_ci        EXPECT_TRUE(g_getAbilityCurrentRouter);
4737c804472Sopenharmony_ci    }
4747c804472Sopenharmony_ci
4757c804472Sopenharmony_ci    TEST_F(CommandLineTest, DropFrameCommandTest)
4767c804472Sopenharmony_ci    {
4777c804472Sopenharmony_ci        VirtualScreenImpl::GetInstance().dropFrameFrequency = 0;
4787c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
4797c804472Sopenharmony_ci        std::string msg = R"({"frequency" : 1000})";
4807c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg);
4817c804472Sopenharmony_ci        DropFrameCommand command1(type, args1, *socket);
4827c804472Sopenharmony_ci        command1.CheckAndRun();
4837c804472Sopenharmony_ci        EXPECT_EQ(VirtualScreenImpl::GetInstance().dropFrameFrequency, 1000); // set value is 1000
4847c804472Sopenharmony_ci
4857c804472Sopenharmony_ci        VirtualScreenImpl::GetInstance().dropFrameFrequency = 0;
4867c804472Sopenharmony_ci        std::string msg2 = R"({"frequency" : "aaaa"})";
4877c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
4887c804472Sopenharmony_ci        DropFrameCommand command2(type, args2, *socket);
4897c804472Sopenharmony_ci        command2.CheckAndRun();
4907c804472Sopenharmony_ci        EXPECT_EQ(VirtualScreenImpl::GetInstance().dropFrameFrequency, 0);
4917c804472Sopenharmony_ci
4927c804472Sopenharmony_ci        VirtualScreenImpl::GetInstance().dropFrameFrequency = 0;
4937c804472Sopenharmony_ci        std::string msg3 = R"({"frequency" : -100})";
4947c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
4957c804472Sopenharmony_ci        DropFrameCommand command3(type, args3, *socket);
4967c804472Sopenharmony_ci        command3.CheckAndRun();
4977c804472Sopenharmony_ci        EXPECT_EQ(VirtualScreenImpl::GetInstance().dropFrameFrequency, 0);
4987c804472Sopenharmony_ci    }
4997c804472Sopenharmony_ci
5007c804472Sopenharmony_ci    TEST_F(CommandLineTest, KeyPressCommandImeTest)
5017c804472Sopenharmony_ci    {
5027c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
5037c804472Sopenharmony_ci        int codePoint = 2033;
5047c804472Sopenharmony_ci        std::string msg = R"({"isInputMethod":"aaa","codePoint":2033})";
5057c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg);
5067c804472Sopenharmony_ci        KeyPressCommand command1(type, args1, *socket);
5077c804472Sopenharmony_ci        g_dispatchOsInputMethodEvent = false;
5087c804472Sopenharmony_ci        command1.CheckAndRun();
5097c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsInputMethodEvent);
5107c804472Sopenharmony_ci
5117c804472Sopenharmony_ci        args1.Replace("isInputMethod", true);
5127c804472Sopenharmony_ci        args1.Replace("codePoint", "aaaa");
5137c804472Sopenharmony_ci        KeyPressCommand command2(type, args1, *socket);
5147c804472Sopenharmony_ci        g_dispatchOsInputMethodEvent = false;
5157c804472Sopenharmony_ci        command2.CheckAndRun();
5167c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsInputMethodEvent);
5177c804472Sopenharmony_ci
5187c804472Sopenharmony_ci        args1.Replace("codePoint", codePoint);
5197c804472Sopenharmony_ci        KeyPressCommand command3(type, args1, *socket);
5207c804472Sopenharmony_ci        g_dispatchOsInputMethodEvent = false;
5217c804472Sopenharmony_ci        KeyInputImpl::GetInstance().codePoint = 0;
5227c804472Sopenharmony_ci        command3.CheckAndRun();
5237c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchOsInputMethodEvent);
5247c804472Sopenharmony_ci        EXPECT_EQ(KeyInputImpl::GetInstance().codePoint, codePoint);
5257c804472Sopenharmony_ci    }
5267c804472Sopenharmony_ci
5277c804472Sopenharmony_ci    TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsTest)
5287c804472Sopenharmony_ci    {
5297c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
5307c804472Sopenharmony_ci        std::string msg = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,"keyString":123,
5317c804472Sopenharmony_ci            "pressedCodes":[2033]})";
5327c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg);
5337c804472Sopenharmony_ci        KeyPressCommand command1(type, args1, *socket);
5347c804472Sopenharmony_ci        g_dispatchOsKeyEvent = false;
5357c804472Sopenharmony_ci        command1.CheckAndRun();
5367c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsKeyEvent);
5377c804472Sopenharmony_ci    }
5387c804472Sopenharmony_ci
5397c804472Sopenharmony_ci    TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsTypeTest)
5407c804472Sopenharmony_ci    {
5417c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
5427c804472Sopenharmony_ci        std::string msg = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,"pressedCodes":["aaa"]})";
5437c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg);
5447c804472Sopenharmony_ci        KeyPressCommand command1(type, args1, *socket);
5457c804472Sopenharmony_ci        g_dispatchOsKeyEvent = false;
5467c804472Sopenharmony_ci        command1.CheckAndRun();
5477c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsKeyEvent);
5487c804472Sopenharmony_ci    }
5497c804472Sopenharmony_ci
5507c804472Sopenharmony_ci    TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsRangeTest)
5517c804472Sopenharmony_ci    {
5527c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
5537c804472Sopenharmony_ci        // keyAction error
5547c804472Sopenharmony_ci        std::string msg = R"({"isInputMethod" : false, "keyCode" : 2033, "keyAction" : 3, "keyString" : "123",
5557c804472Sopenharmony_ci            "pressedCodes" : [2033]})";
5567c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg);
5577c804472Sopenharmony_ci        KeyPressCommand command1(type, args1, *socket);
5587c804472Sopenharmony_ci        g_dispatchOsKeyEvent = false;
5597c804472Sopenharmony_ci        command1.CheckAndRun();
5607c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsKeyEvent);
5617c804472Sopenharmony_ci        // keyCode error
5627c804472Sopenharmony_ci        args1.Replace("keyAction", 0);
5637c804472Sopenharmony_ci        args1.Replace("keyCode", 1900);
5647c804472Sopenharmony_ci        KeyPressCommand command2(type, args1, *socket);
5657c804472Sopenharmony_ci        g_dispatchOsKeyEvent = false;
5667c804472Sopenharmony_ci        command2.CheckAndRun();
5677c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsKeyEvent);
5687c804472Sopenharmony_ci        // pressedCodes error
5697c804472Sopenharmony_ci        msg = R"({"isInputMethod" : false, "keyCode" : 2033, "keyAction" : 1, "keyString" : "123",
5707c804472Sopenharmony_ci            "pressedCodes" : [1900]})";
5717c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg);
5727c804472Sopenharmony_ci        KeyPressCommand command3(type, args2, *socket);
5737c804472Sopenharmony_ci        g_dispatchOsKeyEvent = false;
5747c804472Sopenharmony_ci        command3.CheckAndRun();
5757c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsKeyEvent);
5767c804472Sopenharmony_ci    }
5777c804472Sopenharmony_ci
5787c804472Sopenharmony_ci    TEST_F(CommandLineTest, KeyPressCommandNoneImeArgsCorrectTest)
5797c804472Sopenharmony_ci    {
5807c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
5817c804472Sopenharmony_ci        std::string msg1 = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,
5827c804472Sopenharmony_ci            "keyString":"ctrl","pressedCodes":[2033]})";
5837c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
5847c804472Sopenharmony_ci        KeyPressCommand command1(type, args1, *socket);
5857c804472Sopenharmony_ci        g_dispatchOsKeyEvent = false;
5867c804472Sopenharmony_ci        command1.CheckAndRun();
5877c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchOsKeyEvent);
5887c804472Sopenharmony_ci        EXPECT_EQ(KeyInputImpl::GetInstance().keyCode, 2033);
5897c804472Sopenharmony_ci        EXPECT_EQ(KeyInputImpl::GetInstance().keyAction, 0);
5907c804472Sopenharmony_ci        EXPECT_EQ(KeyInputImpl::GetInstance().keyString, "ctrl");
5917c804472Sopenharmony_ci        EXPECT_EQ(KeyInputImpl::GetInstance().pressedCodes[0], OHOS::MMI::KeyCode(2033));
5927c804472Sopenharmony_ci
5937c804472Sopenharmony_ci        std::string msg2 = R"({"isInputMethod":false,"keyCode":2033,"keyAction":0,"pressedCodes":[2033]})";
5947c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
5957c804472Sopenharmony_ci        KeyPressCommand command2(type, args2, *socket);
5967c804472Sopenharmony_ci        g_dispatchOsKeyEvent = false;
5977c804472Sopenharmony_ci        command2.CheckAndRun();
5987c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchOsKeyEvent);
5997c804472Sopenharmony_ci        EXPECT_EQ(KeyInputImpl::GetInstance().keyString, "");
6007c804472Sopenharmony_ci
6017c804472Sopenharmony_ci        KeyPressCommand command3(type, args1, *socket);
6027c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
6037c804472Sopenharmony_ci        g_dispatchOsKeyEvent = false;
6047c804472Sopenharmony_ci        command3.CheckAndRun();
6057c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
6067c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsKeyEvent);
6077c804472Sopenharmony_ci    }
6087c804472Sopenharmony_ci
6097c804472Sopenharmony_ci    TEST_F(CommandLineTest, PointEventCommandArgTest)
6107c804472Sopenharmony_ci    {
6117c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
6127c804472Sopenharmony_ci        // y error
6137c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":"aaa","duration":"","button":1,"action": 2,"axisValues":[0,0,0,0],
6147c804472Sopenharmony_ci            "sourceType":1,"sourceTool": 7,"pressedButtons":[0,1]})";
6157c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
6167c804472Sopenharmony_ci        PointEventCommand command1(type, args1, *socket);
6177c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
6187c804472Sopenharmony_ci        command1.CheckAndRun();
6197c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
6207c804472Sopenharmony_ci        // action error
6217c804472Sopenharmony_ci        args1.Replace("y", 1071);
6227c804472Sopenharmony_ci        args1.Replace("action", "2");
6237c804472Sopenharmony_ci        PointEventCommand command2(type, args1, *socket);
6247c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
6257c804472Sopenharmony_ci        command2.CheckAndRun();
6267c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
6277c804472Sopenharmony_ci        // sourceTool error
6287c804472Sopenharmony_ci        args1.Replace("action", 2);
6297c804472Sopenharmony_ci        args1.Replace("sourceTool", "7");
6307c804472Sopenharmony_ci        PointEventCommand command3(type, args1, *socket);
6317c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
6327c804472Sopenharmony_ci        command3.CheckAndRun();
6337c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
6347c804472Sopenharmony_ci        // axisValues error
6357c804472Sopenharmony_ci        args1.Replace("sourceTool", 7);
6367c804472Sopenharmony_ci        args1.Replace("axisValues", "aaa");
6377c804472Sopenharmony_ci        PointEventCommand command4(type, args1, *socket);
6387c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
6397c804472Sopenharmony_ci        command4.CheckAndRun();
6407c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
6417c804472Sopenharmony_ci    }
6427c804472Sopenharmony_ci
6437c804472Sopenharmony_ci    TEST_F(CommandLineTest, PointEventCommandArgRangeTest)
6447c804472Sopenharmony_ci    {
6457c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
6467c804472Sopenharmony_ci        // x error
6477c804472Sopenharmony_ci        std::string msg1 = R"({"x":2000,"y":1071,"duration":"","button":1,"action": 2,"axisValues":[0,0,0,0],
6487c804472Sopenharmony_ci            "sourceType":1,"sourceTool": 7,"pressedButtons":[0,1]})";
6497c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
6507c804472Sopenharmony_ci        PointEventCommand command1(type, args1, *socket);
6517c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
6527c804472Sopenharmony_ci        command1.CheckAndRun();
6537c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
6547c804472Sopenharmony_ci        // y error
6557c804472Sopenharmony_ci        args1.Replace("x", 365);
6567c804472Sopenharmony_ci        args1.Replace("y", 5000);
6577c804472Sopenharmony_ci        PointEventCommand command2(type, args1, *socket);
6587c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
6597c804472Sopenharmony_ci        command2.CheckAndRun();
6607c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
6617c804472Sopenharmony_ci        // sourceTool error
6627c804472Sopenharmony_ci        args1.Replace("y", 1071);
6637c804472Sopenharmony_ci        args1.Replace("sourceTool", -1);
6647c804472Sopenharmony_ci        PointEventCommand command3(type, args1, *socket);
6657c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
6667c804472Sopenharmony_ci        command3.CheckAndRun();
6677c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
6687c804472Sopenharmony_ci        // axisValues error
6697c804472Sopenharmony_ci        msg1 = R"({"x" : 300, "y" : 1071, "duration" : "", "button" : 1, "action" : 2,
6707c804472Sopenharmony_ci            "axisValues" : ["0", 0, 0, 0], "sourceType" : 1, "sourceTool" : 7, "pressedButtons" : [0, 1]})";
6717c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
6727c804472Sopenharmony_ci        PointEventCommand command4(type, args2, *socket);
6737c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
6747c804472Sopenharmony_ci        command4.CheckAndRun();
6757c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
6767c804472Sopenharmony_ci        // pressedButtons errors
6777c804472Sopenharmony_ci        msg1 = R"({"x" : 300, "y" : 1071, "duration" : "", "button" : 1, "action" : 2,
6787c804472Sopenharmony_ci            "axisValues" : [0, 0, 0, 0], "sourceType" : 1, "sourceTool" : 7, "pressedButtons" : [-2, 0, 1]})";
6797c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
6807c804472Sopenharmony_ci        PointEventCommand command5(type, args3, *socket);
6817c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
6827c804472Sopenharmony_ci        command5.CheckAndRun();
6837c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchOsTouchEvent);
6847c804472Sopenharmony_ci    }
6857c804472Sopenharmony_ci
6867c804472Sopenharmony_ci    TEST_F(CommandLineTest, PointEventCommandArgCorrectTest)
6877c804472Sopenharmony_ci    {
6887c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
6897c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":1071,"duration":"","button":1,"action": 2,"axisValues":[0,0,0,0],
6907c804472Sopenharmony_ci            "sourceType":1,"sourceTool": 7,"pressedButtons":[0,1]})";
6917c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
6927c804472Sopenharmony_ci        PointEventCommand command1(type, args1, *socket);
6937c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
6947c804472Sopenharmony_ci        command1.CheckAndRun();
6957c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchOsTouchEvent);
6967c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().mouseXPosition, 365); // 365 is test x
6977c804472Sopenharmony_ci        EXPECT_EQ(MouseInputImpl::GetInstance().mouseYPosition, 1071); // 1071 is test y
6987c804472Sopenharmony_ci
6997c804472Sopenharmony_ci        PointEventCommand command2(type, args1, *socket);
7007c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
7017c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
7027c804472Sopenharmony_ci        command2.CheckAndRun();
7037c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
7047c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
7057c804472Sopenharmony_ci    }
7067c804472Sopenharmony_ci
7077c804472Sopenharmony_ci    TEST_F(CommandLineTest, FoldStatusCommandArgsTest)
7087c804472Sopenharmony_ci    {
7097c804472Sopenharmony_ci        VirtualScreenImpl::GetInstance().SetFoldStatus("unfold");
7107c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
7117c804472Sopenharmony_ci        // FoldStatus error
7127c804472Sopenharmony_ci        std::string msg1 = R"({"FoldStatus":100,"width":1080,"height":2504})";
7137c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
7147c804472Sopenharmony_ci        FoldStatusCommand command1(type, args1, *socket);
7157c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
7167c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
7177c804472Sopenharmony_ci        command1.CheckAndRun();
7187c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().width, 1080); // 1080 is test width
7197c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().height, 2504); // 2504 is test height
7207c804472Sopenharmony_ci        // height error
7217c804472Sopenharmony_ci        args1.Replace("FoldStatus", "fold");
7227c804472Sopenharmony_ci        args1.Replace("height", "aaa");
7237c804472Sopenharmony_ci        FoldStatusCommand command2(type, args1, *socket);
7247c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
7257c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
7267c804472Sopenharmony_ci        command2.CheckAndRun();
7277c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().width, 1080); // 1080 is test width
7287c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().height, 2504); // 2504 is test height
7297c804472Sopenharmony_ci    }
7307c804472Sopenharmony_ci
7317c804472Sopenharmony_ci    TEST_F(CommandLineTest, FoldStatusCommandArgsRangeTest)
7327c804472Sopenharmony_ci    {
7337c804472Sopenharmony_ci        VirtualScreenImpl::GetInstance().SetFoldStatus("unfold");
7347c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
7357c804472Sopenharmony_ci        // FoldStatus error
7367c804472Sopenharmony_ci        std::string msg1 = R"({"FoldStatus":"fold","width":1080,"height":4000})";
7377c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
7387c804472Sopenharmony_ci        FoldStatusCommand command1(type, args1, *socket);
7397c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
7407c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
7417c804472Sopenharmony_ci        command1.CheckAndRun();
7427c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().width, 1080); // 1080 is test width
7437c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().height, 4000); // 4000 is test height
7447c804472Sopenharmony_ci        // height error
7457c804472Sopenharmony_ci        args1.Replace("height", 2504); // 2504 is test height
7467c804472Sopenharmony_ci        args1.Replace("FoldStatus", "aaaa");
7477c804472Sopenharmony_ci        FoldStatusCommand command2(type, args1, *socket);
7487c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
7497c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
7507c804472Sopenharmony_ci        command2.CheckAndRun();
7517c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().width, 1080); // 1080 is test width
7527c804472Sopenharmony_ci        EXPECT_NE(JsAppImpl::GetInstance().height, 2504); // 2504 is test height
7537c804472Sopenharmony_ci    }
7547c804472Sopenharmony_ci
7557c804472Sopenharmony_ci    TEST_F(CommandLineTest, FoldStatusCommandArgsCorrectTest)
7567c804472Sopenharmony_ci    {
7577c804472Sopenharmony_ci        VirtualScreenImpl::GetInstance().SetFoldStatus("unfold");
7587c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
7597c804472Sopenharmony_ci        std::string msg1 = R"({"FoldStatus":"fold","width":1080,"height":2504})";
7607c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
7617c804472Sopenharmony_ci        FoldStatusCommand command1(type, args1, *socket);
7627c804472Sopenharmony_ci        JsAppImpl::GetInstance().width = 0;
7637c804472Sopenharmony_ci        JsAppImpl::GetInstance().height = 0;
7647c804472Sopenharmony_ci        command1.CheckAndRun();
7657c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().width, 1080); // 1080 is test width
7667c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().height, 2504); // 2504 is test height
7677c804472Sopenharmony_ci    }
7687c804472Sopenharmony_ci
7697c804472Sopenharmony_ci    TEST_F(CommandLineTest, PowerCommandArgsTest)
7707c804472Sopenharmony_ci    {
7717c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
7727c804472Sopenharmony_ci        std::string msg1 = R"({"Power":"abc"})";
7737c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
7747c804472Sopenharmony_ci        PowerCommand command1(type, args1, *socket);
7757c804472Sopenharmony_ci        command1.CheckAndRun();
7767c804472Sopenharmony_ci        double power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL);
7777c804472Sopenharmony_ci        EXPECT_EQ(power, 1.0); // 1.0 is default Power value
7787c804472Sopenharmony_ci
7797c804472Sopenharmony_ci        args1.Replace("Power", 2.0); // 2.0 is test Power value
7807c804472Sopenharmony_ci        PowerCommand command2(type, args1, *socket);
7817c804472Sopenharmony_ci        command2.CheckAndRun();
7827c804472Sopenharmony_ci        power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL);
7837c804472Sopenharmony_ci        EXPECT_NE(power, 2.0); // 2.0 is test Power value
7847c804472Sopenharmony_ci
7857c804472Sopenharmony_ci        args1.Replace("Power", -1);
7867c804472Sopenharmony_ci        PowerCommand command3(type, args1, *socket);
7877c804472Sopenharmony_ci        command3.CheckAndRun();
7887c804472Sopenharmony_ci        power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL);
7897c804472Sopenharmony_ci        EXPECT_NE(power, -1); // -1 is test Power value
7907c804472Sopenharmony_ci    }
7917c804472Sopenharmony_ci
7927c804472Sopenharmony_ci    TEST_F(CommandLineTest, PowerCommandSetTest)
7937c804472Sopenharmony_ci    {
7947c804472Sopenharmony_ci        std::string msg1 = R"({"Power":0.5})";
7957c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
7967c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
7977c804472Sopenharmony_ci        PowerCommand command1(type, args1, *socket);
7987c804472Sopenharmony_ci        command1.CheckAndRun();
7997c804472Sopenharmony_ci        double power = SharedData<double>::GetData(SharedDataType::BATTERY_LEVEL);
8007c804472Sopenharmony_ci        EXPECT_EQ(power, 0.5); // 0.5 is test Barometer value
8017c804472Sopenharmony_ci    }
8027c804472Sopenharmony_ci
8037c804472Sopenharmony_ci    TEST_F(CommandLineTest, PowerCommandGetTest)
8047c804472Sopenharmony_ci    {
8057c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
8067c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
8077c804472Sopenharmony_ci        PowerCommand command2(type, args2, *socket);
8087c804472Sopenharmony_ci        g_output = false;
8097c804472Sopenharmony_ci        command2.CheckAndRun();
8107c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
8117c804472Sopenharmony_ci    }
8127c804472Sopenharmony_ci
8137c804472Sopenharmony_ci    TEST_F(CommandLineTest, VolumeCommandTest)
8147c804472Sopenharmony_ci    {
8157c804472Sopenharmony_ci        std::string msg1 = R"({"Volume":90})";
8167c804472Sopenharmony_ci        CommandLine::CommandType type1 = CommandLine::CommandType::SET;
8177c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
8187c804472Sopenharmony_ci        VolumeCommand command1(type1, args1, *socket);
8197c804472Sopenharmony_ci        g_output = false;
8207c804472Sopenharmony_ci        command1.CheckAndRun();
8217c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
8227c804472Sopenharmony_ci
8237c804472Sopenharmony_ci        CommandLine::CommandType type2 = CommandLine::CommandType::GET;
8247c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
8257c804472Sopenharmony_ci        VolumeCommand command2(type2, args2, *socket);
8267c804472Sopenharmony_ci        g_output = false;
8277c804472Sopenharmony_ci        command2.CheckAndRun();
8287c804472Sopenharmony_ci        command2.RunGet();
8297c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
8307c804472Sopenharmony_ci    }
8317c804472Sopenharmony_ci
8327c804472Sopenharmony_ci    TEST_F(CommandLineTest, BarometerCommandArgsTest)
8337c804472Sopenharmony_ci    {
8347c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
8357c804472Sopenharmony_ci        std::string msg1 = R"({"Barometer":"abc"})";
8367c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
8377c804472Sopenharmony_ci        BarometerCommand command1(type, args1, *socket);
8387c804472Sopenharmony_ci        command1.CheckAndRun();
8397c804472Sopenharmony_ci        int barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE));
8407c804472Sopenharmony_ci        EXPECT_EQ(barometer, 101325); // 101325 is default Power value
8417c804472Sopenharmony_ci
8427c804472Sopenharmony_ci        args1.Replace("Barometer", 999901); // 999901 is test Power value
8437c804472Sopenharmony_ci        BarometerCommand command2(type, args1, *socket);
8447c804472Sopenharmony_ci        command2.CheckAndRun();
8457c804472Sopenharmony_ci        barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE));
8467c804472Sopenharmony_ci        EXPECT_NE(barometer, 999901); // 999901 is test Power value
8477c804472Sopenharmony_ci
8487c804472Sopenharmony_ci        args1.Replace("Barometer", -1);
8497c804472Sopenharmony_ci        BarometerCommand command3(type, args1, *socket);
8507c804472Sopenharmony_ci        command3.CheckAndRun();
8517c804472Sopenharmony_ci        barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE));
8527c804472Sopenharmony_ci        EXPECT_NE(barometer, -1); // -1 is test Power value
8537c804472Sopenharmony_ci    }
8547c804472Sopenharmony_ci
8557c804472Sopenharmony_ci    TEST_F(CommandLineTest, BarometerCommandSetTest)
8567c804472Sopenharmony_ci    {
8577c804472Sopenharmony_ci        std::string msg1 = R"({"Barometer":999})";
8587c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
8597c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
8607c804472Sopenharmony_ci        BarometerCommand command1(type, args1, *socket);
8617c804472Sopenharmony_ci        command1.CheckAndRun();
8627c804472Sopenharmony_ci        int barometer = static_cast<int>(SharedData<uint32_t>::GetData(SharedDataType::PRESSURE_VALUE));
8637c804472Sopenharmony_ci        EXPECT_EQ(barometer, 999); // 999 is test Barometer value
8647c804472Sopenharmony_ci    }
8657c804472Sopenharmony_ci
8667c804472Sopenharmony_ci    TEST_F(CommandLineTest, BarometerCommandGetTest)
8677c804472Sopenharmony_ci    {
8687c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
8697c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
8707c804472Sopenharmony_ci        BarometerCommand command2(type, args2, *socket);
8717c804472Sopenharmony_ci        g_output = false;
8727c804472Sopenharmony_ci        command2.CheckAndRun();
8737c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
8747c804472Sopenharmony_ci    }
8757c804472Sopenharmony_ci
8767c804472Sopenharmony_ci    TEST_F(CommandLineTest, LocationCommandArgsTest)
8777c804472Sopenharmony_ci    {
8787c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
8797c804472Sopenharmony_ci        std::string msg0 = R"({"latitude":"10.0"})";
8807c804472Sopenharmony_ci        Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
8817c804472Sopenharmony_ci        LocationCommand command0(type, args0, *socket);
8827c804472Sopenharmony_ci        command0.CheckAndRun();
8837c804472Sopenharmony_ci        double latitude = SharedData<double>::GetData(SharedDataType::LATITUDE);
8847c804472Sopenharmony_ci        EXPECT_EQ(latitude, 0);
8857c804472Sopenharmony_ci        std::string msg1 = R"({"latitude":"10.0","longitude":"abc"})";
8867c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
8877c804472Sopenharmony_ci        LocationCommand command1(type, args1, *socket);
8887c804472Sopenharmony_ci        command1.CheckAndRun();
8897c804472Sopenharmony_ci        latitude = SharedData<double>::GetData(SharedDataType::LATITUDE);
8907c804472Sopenharmony_ci        EXPECT_EQ(latitude, 0);
8917c804472Sopenharmony_ci        args1.Replace("longitude", "10.0"); // 10.0 is test longitude value
8927c804472Sopenharmony_ci        args1.Replace("latitude", "-91.0"); // -91 is test latitude value
8937c804472Sopenharmony_ci        LocationCommand command2(type, args1, *socket);
8947c804472Sopenharmony_ci        command2.CheckAndRun();
8957c804472Sopenharmony_ci        latitude = SharedData<double>::GetData(SharedDataType::LATITUDE);
8967c804472Sopenharmony_ci        EXPECT_NE(latitude, -91.0); // -91 is test longitude value
8977c804472Sopenharmony_ci        args1.Replace("latitude", "91.0"); // 91 is test latitude value
8987c804472Sopenharmony_ci        LocationCommand command3(type, args1, *socket);
8997c804472Sopenharmony_ci        command3.CheckAndRun();
9007c804472Sopenharmony_ci        latitude = SharedData<double>::GetData(SharedDataType::LATITUDE);
9017c804472Sopenharmony_ci        EXPECT_NE(latitude, 91); // 91 is test longitude value
9027c804472Sopenharmony_ci        args1.Replace("latitude", "10.0"); // 10.0 is test latitude value
9037c804472Sopenharmony_ci        args1.Replace("longitude", "-181.0"); // -181 is test longitude value
9047c804472Sopenharmony_ci        LocationCommand command4(type, args1, *socket);
9057c804472Sopenharmony_ci        command4.CheckAndRun();
9067c804472Sopenharmony_ci        double longitude = SharedData<double>::GetData(SharedDataType::LONGITUDE);
9077c804472Sopenharmony_ci        EXPECT_NE(longitude, -181); // -181 is test longitude value
9087c804472Sopenharmony_ci        args1.Replace("longitude", "181.0"); // 181 is test longitude value
9097c804472Sopenharmony_ci        LocationCommand command5(type, args1, *socket);
9107c804472Sopenharmony_ci        command5.CheckAndRun();
9117c804472Sopenharmony_ci        longitude = SharedData<double>::GetData(SharedDataType::LONGITUDE);
9127c804472Sopenharmony_ci        EXPECT_NE(longitude, 181); // 181 is test longitude value
9137c804472Sopenharmony_ci    }
9147c804472Sopenharmony_ci
9157c804472Sopenharmony_ci    TEST_F(CommandLineTest, LocationCommandSetTest)
9167c804472Sopenharmony_ci    {
9177c804472Sopenharmony_ci        std::string msg1 = R"({"latitude":"10.9023142","longitude":"56.3043242"})";
9187c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
9197c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
9207c804472Sopenharmony_ci        LocationCommand command1(type, args1, *socket);
9217c804472Sopenharmony_ci        command1.CheckAndRun();
9227c804472Sopenharmony_ci        double longitude = SharedData<double>::GetData(SharedDataType::LONGITUDE);
9237c804472Sopenharmony_ci        double latitude = SharedData<double>::GetData(SharedDataType::LATITUDE);
9247c804472Sopenharmony_ci        EXPECT_EQ(latitude, 10.9023142); // 10.9023142 is test longitude value
9257c804472Sopenharmony_ci        EXPECT_EQ(longitude, 56.3043242); // 56.3043242 is test latitude value
9267c804472Sopenharmony_ci    }
9277c804472Sopenharmony_ci
9287c804472Sopenharmony_ci    TEST_F(CommandLineTest, LocationCommandGetTest)
9297c804472Sopenharmony_ci    {
9307c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
9317c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
9327c804472Sopenharmony_ci        LocationCommand command2(type, args2, *socket);
9337c804472Sopenharmony_ci        g_output = false;
9347c804472Sopenharmony_ci        command2.CheckAndRun();
9357c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
9367c804472Sopenharmony_ci    }
9377c804472Sopenharmony_ci
9387c804472Sopenharmony_ci    TEST_F(CommandLineTest, KeepScreenOnStateCommandArgsTest)
9397c804472Sopenharmony_ci    {
9407c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
9417c804472Sopenharmony_ci        std::string msg0 = R"({"KeepScreenOnState111":false})";
9427c804472Sopenharmony_ci        Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
9437c804472Sopenharmony_ci        KeepScreenOnStateCommand command0(type, args0, *socket);
9447c804472Sopenharmony_ci        command0.CheckAndRun();
9457c804472Sopenharmony_ci        bool status = SharedData<bool>::GetData(SharedDataType::KEEP_SCREEN_ON);
9467c804472Sopenharmony_ci        EXPECT_EQ(status, true);
9477c804472Sopenharmony_ci
9487c804472Sopenharmony_ci        std::string msg1 = R"({"KeepScreenOnState":"abc"})";
9497c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
9507c804472Sopenharmony_ci        KeepScreenOnStateCommand command1(type, args1, *socket);
9517c804472Sopenharmony_ci        command1.CheckAndRun();
9527c804472Sopenharmony_ci        status = SharedData<bool>::GetData(SharedDataType::KEEP_SCREEN_ON);
9537c804472Sopenharmony_ci        EXPECT_EQ(status, true);
9547c804472Sopenharmony_ci    }
9557c804472Sopenharmony_ci
9567c804472Sopenharmony_ci    TEST_F(CommandLineTest, KeepScreenOnStateCommandSetTest)
9577c804472Sopenharmony_ci    {
9587c804472Sopenharmony_ci        std::string msg1 = R"({"KeepScreenOnState":false})";
9597c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
9607c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
9617c804472Sopenharmony_ci        KeepScreenOnStateCommand command1(type, args1, *socket);
9627c804472Sopenharmony_ci        command1.CheckAndRun();
9637c804472Sopenharmony_ci        bool status = SharedData<bool>::GetData(SharedDataType::KEEP_SCREEN_ON);
9647c804472Sopenharmony_ci        EXPECT_EQ(status, false);
9657c804472Sopenharmony_ci    }
9667c804472Sopenharmony_ci
9677c804472Sopenharmony_ci    TEST_F(CommandLineTest, KeepScreenOnStateCommandGetTest)
9687c804472Sopenharmony_ci    {
9697c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
9707c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
9717c804472Sopenharmony_ci        KeepScreenOnStateCommand command2(type, args2, *socket);
9727c804472Sopenharmony_ci        g_output = false;
9737c804472Sopenharmony_ci        command2.CheckAndRun();
9747c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
9757c804472Sopenharmony_ci    }
9767c804472Sopenharmony_ci
9777c804472Sopenharmony_ci    TEST_F(CommandLineTest, WearingStateCommandArgsTest)
9787c804472Sopenharmony_ci    {
9797c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
9807c804472Sopenharmony_ci        std::string msg0 = R"({"WearingState11":false})";
9817c804472Sopenharmony_ci        Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
9827c804472Sopenharmony_ci        WearingStateCommand command0(type, args0, *socket);
9837c804472Sopenharmony_ci        command0.CheckAndRun();
9847c804472Sopenharmony_ci        bool status = SharedData<bool>::GetData(SharedDataType::WEARING_STATE);
9857c804472Sopenharmony_ci        EXPECT_EQ(status, true);
9867c804472Sopenharmony_ci
9877c804472Sopenharmony_ci        std::string msg1 = R"({"WearingState":"abc"})";
9887c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
9897c804472Sopenharmony_ci        WearingStateCommand command1(type, args1, *socket);
9907c804472Sopenharmony_ci        command1.CheckAndRun();
9917c804472Sopenharmony_ci        status = SharedData<bool>::GetData(SharedDataType::WEARING_STATE);
9927c804472Sopenharmony_ci        EXPECT_EQ(status, true);
9937c804472Sopenharmony_ci    }
9947c804472Sopenharmony_ci
9957c804472Sopenharmony_ci    TEST_F(CommandLineTest, WearingStateCommandSetTest)
9967c804472Sopenharmony_ci    {
9977c804472Sopenharmony_ci        std::string msg1 = R"({"WearingState":false})";
9987c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
9997c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
10007c804472Sopenharmony_ci        WearingStateCommand command1(type, args1, *socket);
10017c804472Sopenharmony_ci        command1.CheckAndRun();
10027c804472Sopenharmony_ci        bool status = SharedData<bool>::GetData(SharedDataType::WEARING_STATE);
10037c804472Sopenharmony_ci        EXPECT_EQ(status, false);
10047c804472Sopenharmony_ci    }
10057c804472Sopenharmony_ci
10067c804472Sopenharmony_ci    TEST_F(CommandLineTest, WearingStateCommandGetTest)
10077c804472Sopenharmony_ci    {
10087c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
10097c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
10107c804472Sopenharmony_ci        WearingStateCommand command2(type, args2, *socket);
10117c804472Sopenharmony_ci        g_output = false;
10127c804472Sopenharmony_ci        command2.CheckAndRun();
10137c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
10147c804472Sopenharmony_ci    }
10157c804472Sopenharmony_ci
10167c804472Sopenharmony_ci    TEST_F(CommandLineTest, BrightnessModeCommandArgsTest)
10177c804472Sopenharmony_ci    {
10187c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
10197c804472Sopenharmony_ci        std::string msg0 = R"({"BrightnessMode111":1})";
10207c804472Sopenharmony_ci        Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
10217c804472Sopenharmony_ci        BrightnessModeCommand command0(type, args0, *socket);
10227c804472Sopenharmony_ci        command0.CheckAndRun();
10237c804472Sopenharmony_ci        uint8_t brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
10247c804472Sopenharmony_ci        EXPECT_EQ(brightness, 0); // 0 is default brightness
10257c804472Sopenharmony_ci
10267c804472Sopenharmony_ci        std::string msg1 = R"({"BrightnessMode":"abc"})";
10277c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
10287c804472Sopenharmony_ci        BrightnessModeCommand command1(type, args1, *socket);
10297c804472Sopenharmony_ci        command1.CheckAndRun();
10307c804472Sopenharmony_ci        brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
10317c804472Sopenharmony_ci        EXPECT_EQ(brightness, 0); // 0 is default brightness
10327c804472Sopenharmony_ci
10337c804472Sopenharmony_ci        msg1 = R"({"BrightnessMode":-1})";
10347c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
10357c804472Sopenharmony_ci        BrightnessModeCommand command2(type, args2, *socket);
10367c804472Sopenharmony_ci        command2.CheckAndRun();
10377c804472Sopenharmony_ci        brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
10387c804472Sopenharmony_ci        EXPECT_NE(brightness, -1); // -1 is test brightness value
10397c804472Sopenharmony_ci
10407c804472Sopenharmony_ci        msg1 = R"({"BrightnessMode":2})";
10417c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
10427c804472Sopenharmony_ci        BrightnessModeCommand command3(type, args3, *socket);
10437c804472Sopenharmony_ci        command3.CheckAndRun();
10447c804472Sopenharmony_ci        brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
10457c804472Sopenharmony_ci        EXPECT_NE(brightness, 2); // 2 is test brightness value
10467c804472Sopenharmony_ci    }
10477c804472Sopenharmony_ci
10487c804472Sopenharmony_ci    TEST_F(CommandLineTest, BrightnessModeCommandSetTest)
10497c804472Sopenharmony_ci    {
10507c804472Sopenharmony_ci        std::string msg1 = R"({"BrightnessMode":1})";
10517c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
10527c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
10537c804472Sopenharmony_ci        BrightnessModeCommand command1(type, args1, *socket);
10547c804472Sopenharmony_ci        command1.CheckAndRun();
10557c804472Sopenharmony_ci        uint8_t brightness = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
10567c804472Sopenharmony_ci        EXPECT_EQ(brightness, 1); // 1 is default brightness
10577c804472Sopenharmony_ci    }
10587c804472Sopenharmony_ci
10597c804472Sopenharmony_ci    TEST_F(CommandLineTest, BrightnessModeCommandGetTest)
10607c804472Sopenharmony_ci    {
10617c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
10627c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
10637c804472Sopenharmony_ci        BrightnessModeCommand command2(type, args2, *socket);
10647c804472Sopenharmony_ci        g_output = false;
10657c804472Sopenharmony_ci        command2.CheckAndRun();
10667c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
10677c804472Sopenharmony_ci    }
10687c804472Sopenharmony_ci
10697c804472Sopenharmony_ci    TEST_F(CommandLineTest, ChargeModeCommandArgsTest)
10707c804472Sopenharmony_ci    {
10717c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
10727c804472Sopenharmony_ci        std::string msg0 = R"({"ChargeMode111":1})";
10737c804472Sopenharmony_ci        Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
10747c804472Sopenharmony_ci        ChargeModeCommand command0(type, args0, *socket);
10757c804472Sopenharmony_ci        command0.CheckAndRun();
10767c804472Sopenharmony_ci        uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS);
10777c804472Sopenharmony_ci        EXPECT_EQ(mode, 0); // 0 is default mode
10787c804472Sopenharmony_ci
10797c804472Sopenharmony_ci        std::string msg1 = R"({"ChargeMode":"abc"})";
10807c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
10817c804472Sopenharmony_ci        ChargeModeCommand command1(type, args1, *socket);
10827c804472Sopenharmony_ci        command1.CheckAndRun();
10837c804472Sopenharmony_ci        mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS);
10847c804472Sopenharmony_ci        EXPECT_EQ(mode, 0); // 0 is default mode
10857c804472Sopenharmony_ci
10867c804472Sopenharmony_ci        msg1 = R"({"ChargeMode":-1})";
10877c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
10887c804472Sopenharmony_ci        ChargeModeCommand command2(type, args2, *socket);
10897c804472Sopenharmony_ci        command2.CheckAndRun();
10907c804472Sopenharmony_ci        mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS);
10917c804472Sopenharmony_ci        EXPECT_NE(mode, -1); // -1 is test mode value
10927c804472Sopenharmony_ci
10937c804472Sopenharmony_ci        msg1 = R"({"ChargeMode":2})";
10947c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
10957c804472Sopenharmony_ci        ChargeModeCommand command3(type, args3, *socket);
10967c804472Sopenharmony_ci        command3.CheckAndRun();
10977c804472Sopenharmony_ci        mode = SharedData<uint8_t>::GetData(SharedDataType::BATTERY_STATUS);
10987c804472Sopenharmony_ci        EXPECT_NE(mode, 2); // 2 is test mode value
10997c804472Sopenharmony_ci    }
11007c804472Sopenharmony_ci
11017c804472Sopenharmony_ci    TEST_F(CommandLineTest, ChargeModeCommandSetTest)
11027c804472Sopenharmony_ci    {
11037c804472Sopenharmony_ci        std::string msg1 = R"({"ChargeMode":1})";
11047c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
11057c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
11067c804472Sopenharmony_ci        ChargeModeCommand command1(type, args1, *socket);
11077c804472Sopenharmony_ci        command1.CheckAndRun();
11087c804472Sopenharmony_ci        uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_MODE);
11097c804472Sopenharmony_ci        EXPECT_EQ(mode, 1); // 1 is default mode
11107c804472Sopenharmony_ci    }
11117c804472Sopenharmony_ci
11127c804472Sopenharmony_ci    TEST_F(CommandLineTest, ChargeModeCommandGetTest)
11137c804472Sopenharmony_ci    {
11147c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
11157c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
11167c804472Sopenharmony_ci        ChargeModeCommand command2(type, args2, *socket);
11177c804472Sopenharmony_ci        g_output = false;
11187c804472Sopenharmony_ci        command2.CheckAndRun();
11197c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
11207c804472Sopenharmony_ci    }
11217c804472Sopenharmony_ci
11227c804472Sopenharmony_ci    TEST_F(CommandLineTest, BrightnessCommandArgsTest)
11237c804472Sopenharmony_ci    {
11247c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
11257c804472Sopenharmony_ci        std::string msg0 = R"({"Brightness111":100})";
11267c804472Sopenharmony_ci        Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
11277c804472Sopenharmony_ci        BrightnessCommand command0(type, args0, *socket);
11287c804472Sopenharmony_ci        command0.CheckAndRun();
11297c804472Sopenharmony_ci        uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE);
11307c804472Sopenharmony_ci        EXPECT_EQ(mode, 255); // 255 is default mode
11317c804472Sopenharmony_ci
11327c804472Sopenharmony_ci        std::string msg1 = R"({"Brightness":"abc"})";
11337c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
11347c804472Sopenharmony_ci        BrightnessCommand command1(type, args1, *socket);
11357c804472Sopenharmony_ci        command1.CheckAndRun();
11367c804472Sopenharmony_ci        mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE);
11377c804472Sopenharmony_ci        EXPECT_EQ(mode, 255); // 255 is default mode
11387c804472Sopenharmony_ci
11397c804472Sopenharmony_ci        msg1 = R"({"Brightness":256})";
11407c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
11417c804472Sopenharmony_ci        BrightnessCommand command2(type, args2, *socket);
11427c804472Sopenharmony_ci        command2.CheckAndRun();
11437c804472Sopenharmony_ci        mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE);
11447c804472Sopenharmony_ci        EXPECT_NE(mode, 256); // 256 is test mode value
11457c804472Sopenharmony_ci
11467c804472Sopenharmony_ci        msg1 = R"({"Brightness":0})";
11477c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
11487c804472Sopenharmony_ci        BrightnessCommand command3(type, args3, *socket);
11497c804472Sopenharmony_ci        command3.CheckAndRun();
11507c804472Sopenharmony_ci        mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE);
11517c804472Sopenharmony_ci        EXPECT_NE(mode, 0); // 0 is test mode value
11527c804472Sopenharmony_ci    }
11537c804472Sopenharmony_ci
11547c804472Sopenharmony_ci    TEST_F(CommandLineTest, BrightnessCommandSetTest)
11557c804472Sopenharmony_ci    {
11567c804472Sopenharmony_ci        std::string msg1 = R"({"Brightness":100})";
11577c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
11587c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
11597c804472Sopenharmony_ci        BrightnessCommand command1(type, args1, *socket);
11607c804472Sopenharmony_ci        command1.CheckAndRun();
11617c804472Sopenharmony_ci        uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::BRIGHTNESS_VALUE);
11627c804472Sopenharmony_ci        EXPECT_EQ(mode, 100); // 100 is test mode
11637c804472Sopenharmony_ci    }
11647c804472Sopenharmony_ci
11657c804472Sopenharmony_ci    TEST_F(CommandLineTest, BrightnessCommandGetTest)
11667c804472Sopenharmony_ci    {
11677c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
11687c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
11697c804472Sopenharmony_ci        BrightnessCommand command2(type, args2, *socket);
11707c804472Sopenharmony_ci        g_output = false;
11717c804472Sopenharmony_ci        command2.CheckAndRun();
11727c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
11737c804472Sopenharmony_ci    }
11747c804472Sopenharmony_ci
11757c804472Sopenharmony_ci    TEST_F(CommandLineTest, HeartRateCommandArgsTest)
11767c804472Sopenharmony_ci    {
11777c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
11787c804472Sopenharmony_ci        std::string msg0 = R"({"HeartRate111":100})";
11797c804472Sopenharmony_ci        Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
11807c804472Sopenharmony_ci        HeartRateCommand command0(type, args0, *socket);
11817c804472Sopenharmony_ci        command0.CheckAndRun();
11827c804472Sopenharmony_ci        uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE);
11837c804472Sopenharmony_ci        EXPECT_EQ(mode, 80); // 80 is default mode
11847c804472Sopenharmony_ci
11857c804472Sopenharmony_ci        std::string msg1 = R"({"HeartRate":"abc"})";
11867c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
11877c804472Sopenharmony_ci        HeartRateCommand command1(type, args1, *socket);
11887c804472Sopenharmony_ci        command1.CheckAndRun();
11897c804472Sopenharmony_ci        mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE);
11907c804472Sopenharmony_ci        EXPECT_EQ(mode, 80); // 80 is default mode
11917c804472Sopenharmony_ci
11927c804472Sopenharmony_ci        msg1 = R"({"HeartRate":256})";
11937c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
11947c804472Sopenharmony_ci        HeartRateCommand command2(type, args2, *socket);
11957c804472Sopenharmony_ci        command2.CheckAndRun();
11967c804472Sopenharmony_ci        mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE);
11977c804472Sopenharmony_ci        EXPECT_NE(mode, 256); // 256 is test mode value
11987c804472Sopenharmony_ci
11997c804472Sopenharmony_ci        msg1 = R"({"HeartRate":-1})";
12007c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
12017c804472Sopenharmony_ci        HeartRateCommand command3(type, args3, *socket);
12027c804472Sopenharmony_ci        command3.CheckAndRun();
12037c804472Sopenharmony_ci        mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE);
12047c804472Sopenharmony_ci        EXPECT_NE(mode, -1); // -1 is test mode value
12057c804472Sopenharmony_ci    }
12067c804472Sopenharmony_ci
12077c804472Sopenharmony_ci    TEST_F(CommandLineTest, HeartRateCommandSetTest)
12087c804472Sopenharmony_ci    {
12097c804472Sopenharmony_ci        std::string msg1 = R"({"HeartRate":100})";
12107c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
12117c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
12127c804472Sopenharmony_ci        HeartRateCommand command1(type, args1, *socket);
12137c804472Sopenharmony_ci        command1.CheckAndRun();
12147c804472Sopenharmony_ci        uint8_t mode = SharedData<uint8_t>::GetData(SharedDataType::HEARTBEAT_VALUE);
12157c804472Sopenharmony_ci        EXPECT_EQ(mode, 100); // 100 is test mode
12167c804472Sopenharmony_ci    }
12177c804472Sopenharmony_ci
12187c804472Sopenharmony_ci    TEST_F(CommandLineTest, HeartRateCommandGetTest)
12197c804472Sopenharmony_ci    {
12207c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
12217c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
12227c804472Sopenharmony_ci        HeartRateCommand command2(type, args2, *socket);
12237c804472Sopenharmony_ci        g_output = false;
12247c804472Sopenharmony_ci        command2.CheckAndRun();
12257c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
12267c804472Sopenharmony_ci    }
12277c804472Sopenharmony_ci
12287c804472Sopenharmony_ci    TEST_F(CommandLineTest, StepCountCommandArgsTest)
12297c804472Sopenharmony_ci    {
12307c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
12317c804472Sopenharmony_ci        std::string msg0 = R"({"StepCount111":100})";
12327c804472Sopenharmony_ci        Json2::Value args0 = JsonReader::ParseJsonData2(msg0);
12337c804472Sopenharmony_ci        StepCountCommand command0(type, args0, *socket);
12347c804472Sopenharmony_ci        command0.CheckAndRun();
12357c804472Sopenharmony_ci        uint32_t mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE);
12367c804472Sopenharmony_ci        EXPECT_EQ(mode, 0); // 0 is default mode
12377c804472Sopenharmony_ci
12387c804472Sopenharmony_ci        std::string msg1 = R"({"StepCount":"abc"})";
12397c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
12407c804472Sopenharmony_ci        StepCountCommand command1(type, args1, *socket);
12417c804472Sopenharmony_ci        command1.CheckAndRun();
12427c804472Sopenharmony_ci        mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE);
12437c804472Sopenharmony_ci        EXPECT_EQ(mode, 0); // 0 is default mode
12447c804472Sopenharmony_ci
12457c804472Sopenharmony_ci        msg1 = R"({"StepCount":10000000})";
12467c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg1);
12477c804472Sopenharmony_ci        StepCountCommand command2(type, args2, *socket);
12487c804472Sopenharmony_ci        command2.CheckAndRun();
12497c804472Sopenharmony_ci        mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE);
12507c804472Sopenharmony_ci        EXPECT_NE(mode, 10000000); // 10000000 is test mode value
12517c804472Sopenharmony_ci
12527c804472Sopenharmony_ci        msg1 = R"({"StepCount":-1})";
12537c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg1);
12547c804472Sopenharmony_ci        StepCountCommand command3(type, args3, *socket);
12557c804472Sopenharmony_ci        command3.CheckAndRun();
12567c804472Sopenharmony_ci        mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE);
12577c804472Sopenharmony_ci        EXPECT_NE(mode, -1); // -1 is test mode value
12587c804472Sopenharmony_ci    }
12597c804472Sopenharmony_ci
12607c804472Sopenharmony_ci    TEST_F(CommandLineTest, StepCountCommandSetTest)
12617c804472Sopenharmony_ci    {
12627c804472Sopenharmony_ci        std::string msg1 = R"({"StepCount":100})";
12637c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
12647c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
12657c804472Sopenharmony_ci        StepCountCommand command1(type, args1, *socket);
12667c804472Sopenharmony_ci        command1.CheckAndRun();
12677c804472Sopenharmony_ci        uint8_t mode = SharedData<uint32_t>::GetData(SharedDataType::SUMSTEP_VALUE);
12687c804472Sopenharmony_ci        EXPECT_EQ(mode, 100); // 100 is test mode
12697c804472Sopenharmony_ci    }
12707c804472Sopenharmony_ci
12717c804472Sopenharmony_ci    TEST_F(CommandLineTest, StepCountCommandGetTest)
12727c804472Sopenharmony_ci    {
12737c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
12747c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
12757c804472Sopenharmony_ci        StepCountCommand command2(type, args2, *socket);
12767c804472Sopenharmony_ci        g_output = false;
12777c804472Sopenharmony_ci        command2.CheckAndRun();
12787c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
12797c804472Sopenharmony_ci    }
12807c804472Sopenharmony_ci
12817c804472Sopenharmony_ci    TEST_F(CommandLineTest, DistributedCommunicationsCommandTest)
12827c804472Sopenharmony_ci    {
12837c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
12847c804472Sopenharmony_ci        std::string msg1 = R"({"DeviceId":"68-05-CA-90-9A-66","bundleName":"abc",
12857c804472Sopenharmony_ci            "abilityName":"hello"})";
12867c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
12877c804472Sopenharmony_ci        DistributedCommunicationsCommand command1(type, args1, *socket);
12887c804472Sopenharmony_ci        g_sendVirtualMessage = false;
12897c804472Sopenharmony_ci        command1.CheckAndRun();
12907c804472Sopenharmony_ci        EXPECT_FALSE(g_sendVirtualMessage);
12917c804472Sopenharmony_ci
12927c804472Sopenharmony_ci        std::string msg2 = R"({"DeviceId":"68-05-CA-90-9A-66","bundleName":"abc",
12937c804472Sopenharmony_ci            "abilityName":"hello"},"message":"")";
12947c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
12957c804472Sopenharmony_ci        DistributedCommunicationsCommand command2(type, args2, *socket);
12967c804472Sopenharmony_ci        g_sendVirtualMessage = false;
12977c804472Sopenharmony_ci        command2.CheckAndRun();
12987c804472Sopenharmony_ci        EXPECT_FALSE(g_sendVirtualMessage);
12997c804472Sopenharmony_ci
13007c804472Sopenharmony_ci        std::string msg3 = R"({"DeviceId":"68-05-CA-90-9A-66","bundleName":"abc",
13017c804472Sopenharmony_ci            "abilityName":"hello","message":"{ action:'GET_WEATHER',city:'HangZhou' }"})";
13027c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
13037c804472Sopenharmony_ci        DistributedCommunicationsCommand command3(type, args3, *socket);
13047c804472Sopenharmony_ci        g_sendVirtualMessage = false;
13057c804472Sopenharmony_ci        command3.CheckAndRun();
13067c804472Sopenharmony_ci        EXPECT_TRUE(g_sendVirtualMessage);
13077c804472Sopenharmony_ci
13087c804472Sopenharmony_ci        std::string msg4 = R"({"DeviceId" : "68-05-CA-90-9A-66", "bundleName" : "abc",
13097c804472Sopenharmony_ci            "abilityName" : "hello", "message" : ""})";
13107c804472Sopenharmony_ci        Json2::Value args4 = JsonReader::ParseJsonData2(msg4);
13117c804472Sopenharmony_ci        DistributedCommunicationsCommand command4(type, args4, *socket);
13127c804472Sopenharmony_ci        g_sendVirtualMessage = false;
13137c804472Sopenharmony_ci        command4.CheckAndRun();
13147c804472Sopenharmony_ci        EXPECT_FALSE(g_sendVirtualMessage);
13157c804472Sopenharmony_ci    }
13167c804472Sopenharmony_ci
13177c804472Sopenharmony_ci    TEST_F(CommandLineTest, DistributedCommunicationsCommandTest2)
13187c804472Sopenharmony_ci    {
13197c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
13207c804472Sopenharmony_ci        std::string msg = R"({"DeviceId" : "68-05-CA-90-9A-66", "bundleName" : "abc",
13217c804472Sopenharmony_ci            "abilityName" : "hello", "message" : "{ action : 'GET_WEATHER', city : 'HangZhou' }"})";
13227c804472Sopenharmony_ci        Json2::Value args = JsonReader::ParseJsonData2(msg);
13237c804472Sopenharmony_ci        DistributedCommunicationsCommand command(type, args, *socket);
13247c804472Sopenharmony_ci        std::vector<char> vec = command.StringToCharVector("123");
13257c804472Sopenharmony_ci        int size = 4;
13267c804472Sopenharmony_ci        EXPECT_EQ(vec.size(), size);
13277c804472Sopenharmony_ci    }
13287c804472Sopenharmony_ci
13297c804472Sopenharmony_ci    TEST_F(CommandLineTest, MouseWheelCommandTest)
13307c804472Sopenharmony_ci    {
13317c804472Sopenharmony_ci        std::string msg1 = R"({"rotate":"aaa"})";
13327c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
13337c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
13347c804472Sopenharmony_ci        MouseWheelCommand command1(type, args1, *socket);
13357c804472Sopenharmony_ci        command1.CheckAndRun();
13367c804472Sopenharmony_ci        EXPECT_EQ(MouseWheelImpl::GetInstance().rotate, 0); // 0 is default value
13377c804472Sopenharmony_ci
13387c804472Sopenharmony_ci        std::string msg2 = R"({"rotate":100})";
13397c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
13407c804472Sopenharmony_ci        MouseWheelCommand command2(type, args2, *socket);
13417c804472Sopenharmony_ci        command2.CheckAndRun();
13427c804472Sopenharmony_ci        EXPECT_EQ(MouseWheelImpl::GetInstance().GetRotate(), 100); // 100 is test mode
13437c804472Sopenharmony_ci
13447c804472Sopenharmony_ci        msg2 = R"({"rotate":150})";
13457c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg2);
13467c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
13477c804472Sopenharmony_ci        MouseWheelCommand command3(type, args3, *socket);
13487c804472Sopenharmony_ci        command3.CheckAndRun();
13497c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
13507c804472Sopenharmony_ci        EXPECT_NE(MouseWheelImpl::GetInstance().GetRotate(), 150); // 100 is test mode
13517c804472Sopenharmony_ci    }
13527c804472Sopenharmony_ci
13537c804472Sopenharmony_ci    TEST_F(CommandLineTest, TouchPressCommandArgsTest)
13547c804472Sopenharmony_ci    {
13557c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
13567c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":"abc","duration":""})";
13577c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
13587c804472Sopenharmony_ci        TouchPressCommand command1(type, args1, *socket);
13597c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
13607c804472Sopenharmony_ci        command1.CheckAndRun();
13617c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
13627c804472Sopenharmony_ci    }
13637c804472Sopenharmony_ci
13647c804472Sopenharmony_ci    TEST_F(CommandLineTest, TouchPressCommandArgsRangeTest)
13657c804472Sopenharmony_ci    {
13667c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
13677c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":15000,"duration":""})";
13687c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
13697c804472Sopenharmony_ci        TouchPressCommand command1(type, args1, *socket);
13707c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
13717c804472Sopenharmony_ci        command1.CheckAndRun();
13727c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
13737c804472Sopenharmony_ci
13747c804472Sopenharmony_ci        std::string msg2 = R"({"x":-1,"y":15000,"duration":""})";
13757c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
13767c804472Sopenharmony_ci        TouchPressCommand command2(type, args2, *socket);
13777c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
13787c804472Sopenharmony_ci        command2.CheckAndRun();
13797c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
13807c804472Sopenharmony_ci
13817c804472Sopenharmony_ci        std::string msg3 = R"({"x":15000,"y":365,"duration":""})";
13827c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
13837c804472Sopenharmony_ci        TouchPressCommand command3(type, args3, *socket);
13847c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
13857c804472Sopenharmony_ci        command3.CheckAndRun();
13867c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
13877c804472Sopenharmony_ci
13887c804472Sopenharmony_ci        std::string msg4 = R"({"x":15000,"y":-1,"duration":""})";
13897c804472Sopenharmony_ci        Json2::Value args4 = JsonReader::ParseJsonData2(msg4);
13907c804472Sopenharmony_ci        TouchPressCommand command4(type, args4, *socket);
13917c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
13927c804472Sopenharmony_ci        command4.CheckAndRun();
13937c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
13947c804472Sopenharmony_ci    }
13957c804472Sopenharmony_ci
13967c804472Sopenharmony_ci    TEST_F(CommandLineTest, TouchPressCommandArgsCorrectTest)
13977c804472Sopenharmony_ci    {
13987c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
13997c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":1076,"duration":""})";
14007c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
14017c804472Sopenharmony_ci        TouchPressCommand command1(type, args1, *socket);
14027c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14037c804472Sopenharmony_ci        command1.CheckAndRun();
14047c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchOsTouchEvent);
14057c804472Sopenharmony_ci
14067c804472Sopenharmony_ci        TouchPressCommand command2(type, args1, *socket);
14077c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
14087c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14097c804472Sopenharmony_ci        command2.CheckAndRun();
14107c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
14117c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
14127c804472Sopenharmony_ci    }
14137c804472Sopenharmony_ci
14147c804472Sopenharmony_ci    TEST_F(CommandLineTest, TouchReleaseCommandArgsTest)
14157c804472Sopenharmony_ci    {
14167c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
14177c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":"abc"})";
14187c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
14197c804472Sopenharmony_ci        TouchReleaseCommand command1(type, args1, *socket);
14207c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14217c804472Sopenharmony_ci        command1.CheckAndRun();
14227c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
14237c804472Sopenharmony_ci    }
14247c804472Sopenharmony_ci
14257c804472Sopenharmony_ci    TEST_F(CommandLineTest, TouchReleaseCommandArgsRangeTest)
14267c804472Sopenharmony_ci    {
14277c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
14287c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":15000})";
14297c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
14307c804472Sopenharmony_ci        TouchReleaseCommand command1(type, args1, *socket);
14317c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14327c804472Sopenharmony_ci        command1.CheckAndRun();
14337c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
14347c804472Sopenharmony_ci
14357c804472Sopenharmony_ci        std::string msg2 = R"({"x":-1,"y":15000})";
14367c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
14377c804472Sopenharmony_ci        TouchReleaseCommand command2(type, args2, *socket);
14387c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14397c804472Sopenharmony_ci        command2.CheckAndRun();
14407c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
14417c804472Sopenharmony_ci
14427c804472Sopenharmony_ci        std::string msg3 = R"({"x":15000,"y":365})";
14437c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
14447c804472Sopenharmony_ci        TouchReleaseCommand command3(type, args3, *socket);
14457c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14467c804472Sopenharmony_ci        command3.CheckAndRun();
14477c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
14487c804472Sopenharmony_ci
14497c804472Sopenharmony_ci        std::string msg4 = R"({"x":15000,"y":-1})";
14507c804472Sopenharmony_ci        Json2::Value args4 = JsonReader::ParseJsonData2(msg4);
14517c804472Sopenharmony_ci        TouchReleaseCommand command4(type, args4, *socket);
14527c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14537c804472Sopenharmony_ci        command4.CheckAndRun();
14547c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
14557c804472Sopenharmony_ci    }
14567c804472Sopenharmony_ci
14577c804472Sopenharmony_ci    TEST_F(CommandLineTest, TouchReleaseCommandArgsCorrectTest)
14587c804472Sopenharmony_ci    {
14597c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
14607c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":1076})";
14617c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
14627c804472Sopenharmony_ci        TouchReleaseCommand command1(type, args1, *socket);
14637c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14647c804472Sopenharmony_ci        command1.CheckAndRun();
14657c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchOsTouchEvent);
14667c804472Sopenharmony_ci
14677c804472Sopenharmony_ci        TouchReleaseCommand command2(type, args1, *socket);
14687c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
14697c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14707c804472Sopenharmony_ci        command2.CheckAndRun();
14717c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
14727c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
14737c804472Sopenharmony_ci    }
14747c804472Sopenharmony_ci
14757c804472Sopenharmony_ci    TEST_F(CommandLineTest, TouchMoveCommandArgsTest)
14767c804472Sopenharmony_ci    {
14777c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
14787c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":"abc"})";
14797c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
14807c804472Sopenharmony_ci        TouchMoveCommand command1(type, args1, *socket);
14817c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14827c804472Sopenharmony_ci        command1.CheckAndRun();
14837c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
14847c804472Sopenharmony_ci    }
14857c804472Sopenharmony_ci
14867c804472Sopenharmony_ci    TEST_F(CommandLineTest, TouchMoveCommandArgsRangeTest)
14877c804472Sopenharmony_ci    {
14887c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
14897c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":15000})";
14907c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
14917c804472Sopenharmony_ci        TouchMoveCommand command1(type, args1, *socket);
14927c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
14937c804472Sopenharmony_ci        command1.CheckAndRun();
14947c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
14957c804472Sopenharmony_ci
14967c804472Sopenharmony_ci        std::string msg2 = R"({"x":-1,"y":15000})";
14977c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
14987c804472Sopenharmony_ci        TouchMoveCommand command2(type, args2, *socket);
14997c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
15007c804472Sopenharmony_ci        command2.CheckAndRun();
15017c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
15027c804472Sopenharmony_ci
15037c804472Sopenharmony_ci        std::string msg3 = R"({"x":15000,"y":365})";
15047c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
15057c804472Sopenharmony_ci        TouchMoveCommand command3(type, args3, *socket);
15067c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
15077c804472Sopenharmony_ci        command3.CheckAndRun();
15087c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
15097c804472Sopenharmony_ci
15107c804472Sopenharmony_ci        std::string msg4 = R"({"x":15000,"y":-1})";
15117c804472Sopenharmony_ci        Json2::Value args4 = JsonReader::ParseJsonData2(msg4);
15127c804472Sopenharmony_ci        TouchMoveCommand command4(type, args4, *socket);
15137c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
15147c804472Sopenharmony_ci        command4.CheckAndRun();
15157c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
15167c804472Sopenharmony_ci    }
15177c804472Sopenharmony_ci
15187c804472Sopenharmony_ci    TEST_F(CommandLineTest, TouchMoveCommandArgsCorrectTest)
15197c804472Sopenharmony_ci    {
15207c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
15217c804472Sopenharmony_ci        std::string msg1 = R"({"x":365,"y":1076})";
15227c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
15237c804472Sopenharmony_ci        TouchMoveCommand command1(type, args1, *socket);
15247c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
15257c804472Sopenharmony_ci        command1.CheckAndRun();
15267c804472Sopenharmony_ci        EXPECT_TRUE(g_dispatchOsTouchEvent);
15277c804472Sopenharmony_ci
15287c804472Sopenharmony_ci        TouchMoveCommand command2(type, args1, *socket);
15297c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::STATIC;
15307c804472Sopenharmony_ci        g_dispatchOsTouchEvent = false;
15317c804472Sopenharmony_ci        command2.CheckAndRun();
15327c804472Sopenharmony_ci        CommandParser::GetInstance().screenMode = CommandParser::ScreenMode::DYNAMIC;
15337c804472Sopenharmony_ci        EXPECT_FALSE(g_dispatchOsTouchEvent);
15347c804472Sopenharmony_ci    }
15357c804472Sopenharmony_ci
15367c804472Sopenharmony_ci    TEST_F(CommandLineTest, LanguageCommandArgsTest)
15377c804472Sopenharmony_ci    {
15387c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
15397c804472Sopenharmony_ci        std::string msg1 = R"({"Language":111})";
15407c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
15417c804472Sopenharmony_ci        LanguageCommand command1(type, args1, *socket);
15427c804472Sopenharmony_ci        command1.CheckAndRun();
15437c804472Sopenharmony_ci        std::string language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE);
15447c804472Sopenharmony_ci        EXPECT_EQ(language, "zh-CN"); // zh-CN is default value
15457c804472Sopenharmony_ci
15467c804472Sopenharmony_ci        CommandParser::GetInstance().deviceType = "liteWearable";
15477c804472Sopenharmony_ci        std::string msg2 = R"({"Language":"ar_AE"})";
15487c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
15497c804472Sopenharmony_ci        LanguageCommand command2(type, args2, *socket);
15507c804472Sopenharmony_ci        command2.CheckAndRun();
15517c804472Sopenharmony_ci        language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE);
15527c804472Sopenharmony_ci        EXPECT_NE(language, "ar_AE");
15537c804472Sopenharmony_ci
15547c804472Sopenharmony_ci        CommandParser::GetInstance().deviceType = "phone";
15557c804472Sopenharmony_ci        std::string msg3 = R"({"Language":"aa_BB"})";
15567c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
15577c804472Sopenharmony_ci        LanguageCommand command3(type, args3, *socket);
15587c804472Sopenharmony_ci        command3.CheckAndRun();
15597c804472Sopenharmony_ci        language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE);
15607c804472Sopenharmony_ci        EXPECT_NE(language, "aa_BB");
15617c804472Sopenharmony_ci    }
15627c804472Sopenharmony_ci
15637c804472Sopenharmony_ci    TEST_F(CommandLineTest, LanguageCommandSetTest)
15647c804472Sopenharmony_ci    {
15657c804472Sopenharmony_ci        CommandParser::GetInstance().deviceType = "liteWearable";
15667c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
15677c804472Sopenharmony_ci        std::string msg1 = R"({"Language":"en-US"})";
15687c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
15697c804472Sopenharmony_ci        LanguageCommand command1(type, args1, *socket);
15707c804472Sopenharmony_ci        command1.CheckAndRun();
15717c804472Sopenharmony_ci        std::string language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE);
15727c804472Sopenharmony_ci        EXPECT_EQ(language, "en-US");
15737c804472Sopenharmony_ci
15747c804472Sopenharmony_ci        CommandParser::GetInstance().deviceType = "phone";
15757c804472Sopenharmony_ci        std::string msg2 = R"({"Language":"en_US"})";
15767c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
15777c804472Sopenharmony_ci        LanguageCommand command2(type, args2, *socket);
15787c804472Sopenharmony_ci        command2.CheckAndRun();
15797c804472Sopenharmony_ci        language = SharedData<std::string>::GetData(SharedDataType::LANGUAGE);
15807c804472Sopenharmony_ci        EXPECT_EQ(language, "en_US");
15817c804472Sopenharmony_ci    }
15827c804472Sopenharmony_ci
15837c804472Sopenharmony_ci    TEST_F(CommandLineTest, LanguageCommandGetTest)
15847c804472Sopenharmony_ci    {
15857c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
15867c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
15877c804472Sopenharmony_ci        LanguageCommand command2(type, args2, *socket);
15887c804472Sopenharmony_ci        g_output = false;
15897c804472Sopenharmony_ci        command2.CheckAndRun();
15907c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
15917c804472Sopenharmony_ci    }
15927c804472Sopenharmony_ci
15937c804472Sopenharmony_ci    TEST_F(CommandLineTest, SupportedLanguagesCommandTest)
15947c804472Sopenharmony_ci    {
15957c804472Sopenharmony_ci        CommandParser::GetInstance().deviceType = "liteWearable";
15967c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
15977c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
15987c804472Sopenharmony_ci        SupportedLanguagesCommand command1(type, args1, *socket);
15997c804472Sopenharmony_ci        g_output = false;
16007c804472Sopenharmony_ci        command1.CheckAndRun();
16017c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
16027c804472Sopenharmony_ci
16037c804472Sopenharmony_ci        CommandParser::GetInstance().deviceType = "phone";
16047c804472Sopenharmony_ci        SupportedLanguagesCommand command2(type, args1, *socket);
16057c804472Sopenharmony_ci        command2.CheckAndRun();
16067c804472Sopenharmony_ci        g_output = false;
16077c804472Sopenharmony_ci        command2.CheckAndRun();
16087c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
16097c804472Sopenharmony_ci    }
16107c804472Sopenharmony_ci
16117c804472Sopenharmony_ci    TEST_F(CommandLineTest, ExitCommandTest)
16127c804472Sopenharmony_ci    {
16137c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::ACTION;
16147c804472Sopenharmony_ci        Interrupter::isInterrupt = false;
16157c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
16167c804472Sopenharmony_ci        ExitCommand command1(type, args1, *socket);
16177c804472Sopenharmony_ci        g_output = false;
16187c804472Sopenharmony_ci        command1.CheckAndRun();
16197c804472Sopenharmony_ci        EXPECT_TRUE(Interrupter::isInterrupt);
16207c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
16217c804472Sopenharmony_ci    }
16227c804472Sopenharmony_ci
16237c804472Sopenharmony_ci    TEST_F(CommandLineTest, RestartCommandTest)
16247c804472Sopenharmony_ci    {
16257c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
16267c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
16277c804472Sopenharmony_ci        RestartCommand command2(type, args2, *socket);
16287c804472Sopenharmony_ci        command2.RunAction();
16297c804472Sopenharmony_ci    }
16307c804472Sopenharmony_ci
16317c804472Sopenharmony_ci    TEST_F(CommandLineTest, ResolutionCommandTest)
16327c804472Sopenharmony_ci    {
16337c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
16347c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
16357c804472Sopenharmony_ci        ResolutionCommand command1(type, args1, *socket);
16367c804472Sopenharmony_ci        g_output = false;
16377c804472Sopenharmony_ci        command1.CheckAndRun();
16387c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
16397c804472Sopenharmony_ci    }
16407c804472Sopenharmony_ci
16417c804472Sopenharmony_ci    TEST_F(CommandLineTest, DeviceTypeCommandTest)
16427c804472Sopenharmony_ci    {
16437c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
16447c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateNull();
16457c804472Sopenharmony_ci        DeviceTypeCommand command1(type, args1, *socket);
16467c804472Sopenharmony_ci        g_output = false;
16477c804472Sopenharmony_ci        command1.CheckAndRun();
16487c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
16497c804472Sopenharmony_ci    }
16507c804472Sopenharmony_ci
16517c804472Sopenharmony_ci    TEST_F(CommandLineTest, AvoidAreaCommandTest)
16527c804472Sopenharmony_ci    {
16537c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
16547c804472Sopenharmony_ci        std::string msg1 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":
16557c804472Sopenharmony_ci            {"bottomRect":0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0}})";
16567c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
16577c804472Sopenharmony_ci        AvoidAreaCommand command1(type, args1, *socket);
16587c804472Sopenharmony_ci        g_output = false;
16597c804472Sopenharmony_ci        command1.CheckAndRun();
16607c804472Sopenharmony_ci        command1.RunSet();
16617c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
16627c804472Sopenharmony_ci        std::string msg2 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":{"bottomRect":
16637c804472Sopenharmony_ci            0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},"rightRect":0})";
16647c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
16657c804472Sopenharmony_ci        AvoidAreaCommand command2(type, args2, *socket);
16667c804472Sopenharmony_ci        g_output = false;
16677c804472Sopenharmony_ci        command2.CheckAndRun();
16687c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
16697c804472Sopenharmony_ci        std::string msg3 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":
16707c804472Sopenharmony_ci            {"bottomRect":0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},
16717c804472Sopenharmony_ci            "rightRect":{"posX":0,"posY":0,"width":0}})";
16727c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
16737c804472Sopenharmony_ci        AvoidAreaCommand command3(type, args3, *socket);
16747c804472Sopenharmony_ci        g_output = false;
16757c804472Sopenharmony_ci        command3.CheckAndRun();
16767c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
16777c804472Sopenharmony_ci        std::string msg4 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":
16787c804472Sopenharmony_ci            {"bottomRect":0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},
16797c804472Sopenharmony_ci            "rightRect":{"posX":0,"posY":0,"width":0,"height":"350"}})";
16807c804472Sopenharmony_ci        Json2::Value args4 = JsonReader::ParseJsonData2(msg4);
16817c804472Sopenharmony_ci        AvoidAreaCommand command4(type, args4, *socket);
16827c804472Sopenharmony_ci        g_output = false;
16837c804472Sopenharmony_ci        command4.CheckAndRun();
16847c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
16857c804472Sopenharmony_ci        std::string msg5 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":{"bottomRect":
16867c804472Sopenharmony_ci            0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},
16877c804472Sopenharmony_ci            "rightRect":{"posX":0,"posY":0,"width":-1,"height":-1}})";
16887c804472Sopenharmony_ci        Json2::Value args5 = JsonReader::ParseJsonData2(msg5);
16897c804472Sopenharmony_ci        AvoidAreaCommand command5(type, args5, *socket);
16907c804472Sopenharmony_ci        g_output = false;
16917c804472Sopenharmony_ci        command5.CheckAndRun();
16927c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
16937c804472Sopenharmony_ci        std::string msg6 = R"({"topRect":{"posX":0,"posY":0,"width":2340,"height":117},"bottomRect":{"bottomRect":
16947c804472Sopenharmony_ci            0,"posY":0,"width":0,"height":0},"leftRect":{"posX":0,"posY":0,"width":0,"height":0},
16957c804472Sopenharmony_ci            "rightRect":{"posX":0,"posY":0,"width":2340,"height":84}})";
16967c804472Sopenharmony_ci        Json2::Value args6 = JsonReader::ParseJsonData2(msg6);
16977c804472Sopenharmony_ci        AvoidAreaCommand command6(type, args6, *socket);
16987c804472Sopenharmony_ci        g_output = false;
16997c804472Sopenharmony_ci        command6.CheckAndRun();
17007c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
17017c804472Sopenharmony_ci    }
17027c804472Sopenharmony_ci
17037c804472Sopenharmony_ci    TEST_F(CommandLineTest, AvoidAreaCommandArgsRangeTest)
17047c804472Sopenharmony_ci    {
17057c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
17067c804472Sopenharmony_ci        std::string msg1 = R"({"topRect" : {"posX"  :0, "posY" : 0, "width" : 2340, "height" : 117},
17077c804472Sopenharmony_ci            "bottomRect" : {"posX" : 0, "posY" : 0, "width" : 0, "height" : 0}, "leftRect" : {"posX" : 0,
17087c804472Sopenharmony_ci            "posY" : 0, "width" : 0, "height" : 0}, "rightRect" : {"posX" : 0, "posY" : 0, "width" : 2340,
17097c804472Sopenharmony_ci            "height" : "84"}})";
17107c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
17117c804472Sopenharmony_ci        AvoidAreaCommand command1(type, args1, *socket);
17127c804472Sopenharmony_ci        g_output = false;
17137c804472Sopenharmony_ci        command1.CheckAndRun();
17147c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
17157c804472Sopenharmony_ci
17167c804472Sopenharmony_ci        std::string msg2 = R"({"topRect" : {"posX"  :0, "posY" : 0, "width" : 2340, "height" : 117},
17177c804472Sopenharmony_ci            "bottomRect" : {"posX" : 0, "posY" : 0, "width" : 0, "height" : 0}, "leftRect" : {"posX" : 0,
17187c804472Sopenharmony_ci            "posY" : 0, "width" : 0, "height" : 0}, "rightRect" : {"posX" : 0, "posY" : -2, "width" : 2340,
17197c804472Sopenharmony_ci            "height" : 84}})";
17207c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
17217c804472Sopenharmony_ci        AvoidAreaCommand command2(type, args2, *socket);
17227c804472Sopenharmony_ci        g_output = false;
17237c804472Sopenharmony_ci        command2.CheckAndRun();
17247c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
17257c804472Sopenharmony_ci
17267c804472Sopenharmony_ci
17277c804472Sopenharmony_ci        std::string msg3 = R"({"topRect" : {"posX"  :0, "posY" : 0, "width" : 2340, "height" : 117},
17287c804472Sopenharmony_ci            "bottomRect" : {"posX" : 0, "posY" : 0, "width" : 0, "height" : 0}, "leftRect" : {"posX" : 0,
17297c804472Sopenharmony_ci            "posY" : 0, "width" : 0, "height" : 0}, "rightRect" : {"posX" : 0, "posY" : 0, "width" : 2340,
17307c804472Sopenharmony_ci            "height" : 84}})";
17317c804472Sopenharmony_ci        Json2::Value args3 = JsonReader::ParseJsonData2(msg3);
17327c804472Sopenharmony_ci        AvoidAreaCommand command3(type, args3, *socket);
17337c804472Sopenharmony_ci        g_output = false;
17347c804472Sopenharmony_ci        command3.CheckAndRun();
17357c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
17367c804472Sopenharmony_ci    }
17377c804472Sopenharmony_ci
17387c804472Sopenharmony_ci    TEST_F(CommandLineTest, AvoidAreaChangedCommandTest)
17397c804472Sopenharmony_ci    {
17407c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
17417c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::CreateNull();
17427c804472Sopenharmony_ci        AvoidAreaChangedCommand command2(type, args2, *socket);
17437c804472Sopenharmony_ci        g_output = false;
17447c804472Sopenharmony_ci        command2.CheckAndRun();
17457c804472Sopenharmony_ci        EXPECT_TRUE(g_output);
17467c804472Sopenharmony_ci    }
17477c804472Sopenharmony_ci
17487c804472Sopenharmony_ci    TEST_F(CommandLineTest, IsArgValidTest_Err)
17497c804472Sopenharmony_ci    {
17507c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::GET;
17517c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::CreateObject();
17527c804472Sopenharmony_ci        CurrentRouterCommand command2(type, args1, *socket);
17537c804472Sopenharmony_ci        command2.type = CommandLine::CommandType::INVALID;
17547c804472Sopenharmony_ci        EXPECT_TRUE(command2.IsArgValid());
17557c804472Sopenharmony_ci    }
17567c804472Sopenharmony_ci
17577c804472Sopenharmony_ci    TEST_F(CommandLineTest, ColorModeCommandArgsCorrectTest)
17587c804472Sopenharmony_ci    {
17597c804472Sopenharmony_ci        JsAppImpl::GetInstance().colorMode = "light";
17607c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
17617c804472Sopenharmony_ci        std::string msg = R"({"ColorMode" : "dark"})";
17627c804472Sopenharmony_ci        Json2::Value args = JsonReader::ParseJsonData2(msg);
17637c804472Sopenharmony_ci        ColorModeCommand command(type, args, *socket);
17647c804472Sopenharmony_ci        command.CheckAndRun();
17657c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "dark");
17667c804472Sopenharmony_ci    }
17677c804472Sopenharmony_ci
17687c804472Sopenharmony_ci    TEST_F(CommandLineTest, ColorModeCommandArgsTypeTest)
17697c804472Sopenharmony_ci    {
17707c804472Sopenharmony_ci        JsAppImpl::GetInstance().colorMode = "light";
17717c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
17727c804472Sopenharmony_ci        Json2::Value args = JsonReader::CreateNull();
17737c804472Sopenharmony_ci        ColorModeCommand command(type, args, *socket);
17747c804472Sopenharmony_ci        command.CheckAndRun();
17757c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light");
17767c804472Sopenharmony_ci
17777c804472Sopenharmony_ci        JsAppImpl::GetInstance().colorMode = "light";
17787c804472Sopenharmony_ci        std::string msg1 = R"({"aaa" : "dark"})";
17797c804472Sopenharmony_ci        Json2::Value args1 = JsonReader::ParseJsonData2(msg1);
17807c804472Sopenharmony_ci        ColorModeCommand command1(type, args1, *socket);
17817c804472Sopenharmony_ci        command1.CheckAndRun();
17827c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light");
17837c804472Sopenharmony_ci
17847c804472Sopenharmony_ci        JsAppImpl::GetInstance().colorMode = "light";
17857c804472Sopenharmony_ci        std::string msg2 = R"({"ColorMode" : 123})";
17867c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
17877c804472Sopenharmony_ci        ColorModeCommand command2(type, args2, *socket);
17887c804472Sopenharmony_ci        command2.CheckAndRun();
17897c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light");
17907c804472Sopenharmony_ci    }
17917c804472Sopenharmony_ci
17927c804472Sopenharmony_ci    TEST_F(CommandLineTest, ColorModeCommandArgsRangeTest)
17937c804472Sopenharmony_ci    {
17947c804472Sopenharmony_ci        CommandLine::CommandType type = CommandLine::CommandType::SET;
17957c804472Sopenharmony_ci        JsAppImpl::GetInstance().colorMode = "light";
17967c804472Sopenharmony_ci        std::string msg2 = R"({"ColorMode" : "aaa"})";
17977c804472Sopenharmony_ci        Json2::Value args2 = JsonReader::ParseJsonData2(msg2);
17987c804472Sopenharmony_ci        ColorModeCommand command2(type, args2, *socket);
17997c804472Sopenharmony_ci        command2.CheckAndRun();
18007c804472Sopenharmony_ci        EXPECT_EQ(JsAppImpl::GetInstance().colorMode, "light");
18017c804472Sopenharmony_ci    }
18027c804472Sopenharmony_ci}
1803