1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17 #include <gmock/gmock.h>
18
19 #include "cloud_sync_common.h"
20 #include "dfs_error.h"
21 #include "message_handler.h"
22 #include "socket_mock.h"
23 #include "task_state_manager.h"
24 #include "utils_log.h"
25
26 namespace OHOS {
27 namespace FileManagement::CloudSync {
28 namespace Test {
29 using namespace testing;
30 using namespace testing::ext;
31 using namespace std;
32
33 class MessageHandlerTest : public testing::Test {
34 public:
35 static void SetUpTestCase(void);
36 static void TearDownTestCase(void);
37 void SetUp();
38 void TearDown();
39 };
40
SetUpTestCase(void)41 void MessageHandlerTest::SetUpTestCase(void)
42 {
43 std::cout << "SetUpTestCase" << std::endl;
44 }
45
TearDownTestCase(void)46 void MessageHandlerTest::TearDownTestCase(void)
47 {
48 TaskStateManager::GetInstance().CancelUnloadTask();
49 std::cout << "TearDownTestCase" << std::endl;
50 }
51
SetUp(void)52 void MessageHandlerTest::SetUp(void)
53 {
54 std::cout << "SetUp" << std::endl;
55 }
56
TearDown(void)57 void MessageHandlerTest::TearDown(void)
58 {
59 std::cout << "TearDown" << std::endl;
60 }
61
62 /**
63 * @tc.name: GetDataTest001
64 * @tc.desc: Verify the MessageHandler function
65 * @tc.type: FUNC
66 * @tc.require: IB3T80
67 */
68 HWTEST_F(MessageHandlerTest, GetDataTest001, TestSize.Level1)
69 {
70 GTEST_LOG_(INFO) << "GetDataTest001 start";
71 try {
72 MessageInputInfo inputInfo;
73 inputInfo.srcNetworkId = "srcNetworkId";
74 inputInfo.dstNetworkId = "dstNetworkId";
75 inputInfo.uri = "uritest";
76 inputInfo.msgType = MSG_DOWNLOAD_FILE_REQ;
77 inputInfo.errorCode = 1;
78 inputInfo.userId = 100;
79 inputInfo.taskId = 100;
80 auto messageHandler = make_shared<MessageHandler>(inputInfo);
81 EXPECT_TRUE(messageHandler);
82
83 EXPECT_EQ(messageHandler->GetMsgType(), MSG_DOWNLOAD_FILE_REQ);
84 EXPECT_EQ(messageHandler->GetSrcNetworkId(), "srcNetworkId");
85 EXPECT_EQ(messageHandler->GetDstNetworkId(), "dstNetworkId");
86 EXPECT_EQ(messageHandler->GetUri(), "uritest");
87 EXPECT_EQ(messageHandler->GetErrorCode(), 1);
88 EXPECT_EQ(messageHandler->GetUserId(), 100);
89 EXPECT_EQ(messageHandler->GetTaskId(), 100);
90 } catch (...) {
91 EXPECT_TRUE(false);
92 GTEST_LOG_(INFO) << "GetDataTest001 failed";
93 }
94 GTEST_LOG_(INFO) << "GetDataTest001 end";
95 }
96
97 /**
98 * @tc.name: AddTransTaskTest001
99 * @tc.desc: Verify the PackData function
100 * @tc.type: FUNC
101 * @tc.require: IB3T80
102 */
103 HWTEST_F(MessageHandlerTest, PackDataTest001, TestSize.Level1)
104 {
105 GTEST_LOG_(INFO) << "PackDataTest001 start";
106 try {
107 MessageInputInfo inputInfo;
108 inputInfo.srcNetworkId = "srcNetworkId";
109 inputInfo.dstNetworkId = "dstNetworkId";
110 inputInfo.uri = "uritest";
111 inputInfo.msgType = MSG_DOWNLOAD_FILE_REQ;
112 inputInfo.errorCode = 1;
113 inputInfo.userId = 100;
114 inputInfo.taskId = 100;
115 auto messageHandler = make_shared<MessageHandler>(inputInfo);
116 EXPECT_TRUE(messageHandler);
117 cout << "messageHandler->GetDataSize():" << messageHandler->GetDataSize() << endl;
118 auto dataSubPtr = std::make_unique<uint8_t[]>(messageHandler->GetDataSize());
119 EXPECT_FALSE(messageHandler->PackData(nullptr, messageHandler->GetDataSize()));
120 EXPECT_FALSE(messageHandler->PackData(dataSubPtr.get(), 0));
121 EXPECT_FALSE(messageHandler->PackData(nullptr, 0));
122 EXPECT_TRUE(messageHandler->PackData(dataSubPtr.get(), messageHandler->GetDataSize()));
123
124 MessageHandler msgHandleSub;
125 EXPECT_FALSE(msgHandleSub.UnPackData(nullptr, messageHandler->GetDataSize()));
126 EXPECT_FALSE(msgHandleSub.UnPackData(dataSubPtr.get(), 0));
127 EXPECT_FALSE(msgHandleSub.UnPackData(nullptr, 0));
128 EXPECT_TRUE(msgHandleSub.UnPackData(dataSubPtr.get(), messageHandler->GetDataSize()));
129 } catch (...) {
130 EXPECT_TRUE(false);
131 GTEST_LOG_(INFO) << "PackDataTest001 FAILED";
132 }
133 GTEST_LOG_(INFO) << "PackDataTest001 end";
134 }
135 } // namespace Test
136 } // namespace CloudSync
137 } // namespace OHOS