1 /*
2 * Copyright (c) 2023 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_callback_stub.h"
20 #include "cloud_sync_constants.h"
21 #include "service_callback_mock.h"
22 #include "i_cloud_sync_callback.h"
23 #include "dfs_error.h"
24
25 namespace OHOS {
26 namespace FileManagement::CloudSync {
27 namespace Test {
28 using namespace testing;
29 using namespace testing::ext;
30 using namespace std;
31
32 class MockCallback final : public CloudSyncCallbackStub {
33 public:
34 MOCK_METHOD2(OnSyncStateChanged, void(CloudSyncState state, ErrorType error));
35 };
36
37 class CloudSyncCallbackStubTest : public testing::Test {
38 public:
39 static void SetUpTestCase(void);
40 static void TearDownTestCase(void);
41 void SetUp();
42 void TearDown();
43 };
44
SetUpTestCase(void)45 void CloudSyncCallbackStubTest::SetUpTestCase(void)
46 {
47 std::cout << "SetUpTestCase" << std::endl;
48 }
49
TearDownTestCase(void)50 void CloudSyncCallbackStubTest::TearDownTestCase(void)
51 {
52 std::cout << "TearDownTestCase" << std::endl;
53 }
54
SetUp(void)55 void CloudSyncCallbackStubTest::SetUp(void)
56 {
57 std::cout << "SetUp" << std::endl;
58 }
59
TearDown(void)60 void CloudSyncCallbackStubTest::TearDown(void)
61 {
62 std::cout << "TearDown" << std::endl;
63 }
64
65 /**
66 * @tc.name: HandleOnSyncStateChangedTest001
67 * @tc.desc: Verify the HandleOnSyncStateChanged function.
68 * @tc.type: FUNC
69 * @tc.require: I6H5MH
70 */
71 HWTEST_F(CloudSyncCallbackStubTest, HandleOnSyncStateChangedTest001, TestSize.Level1)
72 {
73 GTEST_LOG_(INFO) << "HandleOnSyncStateChangedTest001 Start";
74 try {
75 MockCallback callback;
76 EXPECT_CALL(callback, OnSyncStateChanged(_, _)).WillOnce(Return());
77
78 MessageParcel data;
79 MessageParcel reply;
80 MessageOption option;
81 EXPECT_TRUE(data.WriteInterfaceToken(ICloudSyncCallback::GetDescriptor()));
82
83 const string bundleName = "com.ohos.photos";
84 EXPECT_TRUE(data.WriteInt32(static_cast<int>((CloudSyncState)0)));
85 EXPECT_TRUE(data.WriteInt32(static_cast<int>((ErrorType)0)));
86
87 EXPECT_EQ(E_OK, callback.OnRemoteRequest(
88 ICloudSyncCallback::SERVICE_CMD_ON_SYNC_STATE_CHANGED, data, reply, option));
89 } catch(...) {
90 EXPECT_TRUE(false);
91 GTEST_LOG_(INFO) << " HandleOnSyncStateChangedTest001 ERROR";
92 }
93 GTEST_LOG_(INFO) << "HandleOnSyncStateChangedTest001 End";
94 }
95
96
97 /**
98 * @tc.name: HandleOnSyncStateChangedTest002
99 * @tc.desc: Verify the HandleOnSyncStateChanged function.
100 * @tc.type: FUNC
101 * @tc.require: I6H5MH
102 */
103 HWTEST_F(CloudSyncCallbackStubTest, HandleOnSyncStateChangedTest002, TestSize.Level1)
104 {
105 GTEST_LOG_(INFO) << "HandleOnSyncStateChangedTest002 Start";
106 try {
107 MockCallback callback;
108 MessageParcel data;
109 MessageParcel reply;
110 MessageOption option;
111
112 const string bundleName = "com.ohos.photos";
113 EXPECT_TRUE(data.WriteInt32(static_cast<int>((CloudSyncState)0)));
114 EXPECT_TRUE(data.WriteInt32(static_cast<int>((ErrorType)0)));
115
116 EXPECT_NE(E_OK, callback.OnRemoteRequest(
117 ICloudSyncCallback::SERVICE_CMD_ON_SYNC_STATE_CHANGED, data, reply, option));
118 } catch(...) {
119 EXPECT_TRUE(false);
120 GTEST_LOG_(INFO) << " HandleOnSyncStateChangedTest002 ERROR";
121 }
122 GTEST_LOG_(INFO) << "HandleOnSyncStateChangedTest002 End";
123 }
124
125 /**
126 * @tc.name: HandleOnSyncStateChangedTest003
127 * @tc.desc: Verify the HandleOnSyncStateChanged function.
128 * @tc.type: FUNC
129 * @tc.require: I6H5MH
130 */
131 HWTEST_F(CloudSyncCallbackStubTest, HandleOnSyncStateChangedTest003, TestSize.Level1)
132 {
133 GTEST_LOG_(INFO) << "HandleOnSyncStateChangedTest003 Start";
134 try {
135 MockCallback callback;
136 MessageParcel data;
137 MessageParcel reply;
138 MessageOption option;
139 EXPECT_TRUE(data.WriteInterfaceToken(ICloudSyncCallback::GetDescriptor()));
140 callback.opToInterfaceMap_.clear();
141
142 const string bundleName = "com.ohos.photos";
143 EXPECT_TRUE(data.WriteInt32(static_cast<int>((CloudSyncState)0)));
144 EXPECT_TRUE(data.WriteInt32(static_cast<int>((ErrorType)0)));
145
146 EXPECT_NE(E_OK, callback.OnRemoteRequest(
147 ICloudSyncCallback::SERVICE_CMD_ON_SYNC_STATE_CHANGED, data, reply, option));
148 } catch(...) {
149 EXPECT_TRUE(false);
150 GTEST_LOG_(INFO) << " HandleOnSyncStateChangedTest003 ERROR";
151 }
152 GTEST_LOG_(INFO) << "HandleOnSyncStateChangedTest003 End";
153 }
154 } // namespace Test
155 } // namespace FileManagement::CloudSync {
156 } // namespace OHOS
157