1 /*
2 * Copyright (c) 2022 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 "dms_free_install_callback_test.h"
17 #include "mock_remote_stub.h"
18 #include "test_log.h"
19
20 using namespace testing;
21 using namespace testing::ext;
22
23 namespace OHOS {
24 namespace DistributedSchedule {
25 namespace {
26 const std::u16string MOCK_INVALID_DESCRIPTOR = u"invalid descriptor";
27 }
28
SetUpTestCase()29 void DmsFreeInstallCallbackTest::SetUpTestCase()
30 {
31 DTEST_LOG << "DmsFreeInstallCallbackTest::SetUpTestCase" << std::endl;
32 }
33
TearDownTestCase()34 void DmsFreeInstallCallbackTest::TearDownTestCase()
35 {
36 DTEST_LOG << "DmsFreeInstallCallbackTest::TearDownTestCase" << std::endl;
37 }
38
TearDown()39 void DmsFreeInstallCallbackTest::TearDown()
40 {
41 DTEST_LOG << "DmsFreeInstallCallbackTest::TearDown" << std::endl;
42 }
43
SetUp()44 void DmsFreeInstallCallbackTest::SetUp()
45 {
46 DTEST_LOG << "DmsFreeInstallCallbackTest::SetUp" << std::endl;
47 int64_t taskId = 0;
48 IDistributedSched::FreeInstallInfo info;
49 dmsFreeInstallCallbackStub_ = new DmsFreeInstallCallback(taskId, info);
50 dmsFreeInstallCallbackProxy_ = new DmsFreeInstallCallbackProxy((new MockRemoteStub())->AsObject());
51 }
52
53 /**
54 * @tc.name: DmsFreeInstallCallbackTest_001
55 * @tc.desc: invalid descriptor
56 * @tc.type: FUNC
57 */
58 HWTEST_F(DmsFreeInstallCallbackTest, DmsFreeInstallCallbackTest_001, TestSize.Level3)
59 {
60 DTEST_LOG << "DmsFreeInstallCallbackTest DmsFreeInstallCallbackTest_001 begin" << std::endl;
61 int32_t code = 0;
62 MessageParcel data;
63 MessageParcel reply;
64 MessageOption option;
65
66 data.WriteInterfaceToken(MOCK_INVALID_DESCRIPTOR);
67 int32_t result = dmsFreeInstallCallbackStub_->OnRemoteRequest(code, data, reply, option);
68 EXPECT_EQ(result, ERR_INVALID_STATE);
69 DTEST_LOG << "DmsFreeInstallCallbackTest DmsFreeInstallCallbackTest_001 end" << std::endl;
70 }
71
72 /**
73 * @tc.name: DmsFreeInstallCallbackTest_002
74 * @tc.desc: invalid code
75 * @tc.type: FUNC
76 */
77 HWTEST_F(DmsFreeInstallCallbackTest, DmsFreeInstallCallbackTest_002, TestSize.Level4)
78 {
79 DTEST_LOG << "DmsFreeInstallCallbackTest DmsFreeInstallCallbackTest_002 begin" << std::endl;
80 int32_t code = -1;
81 MessageParcel data;
82 MessageParcel reply;
83 MessageOption option;
84
85 data.WriteInterfaceToken(DmsFreeInstallCallbackStub::GetDescriptor());
86 int32_t result = dmsFreeInstallCallbackStub_->OnRemoteRequest(code, data, reply, option);
87 EXPECT_EQ(result, ERR_INVALID_STATE);
88 DTEST_LOG << "DmsFreeInstallCallbackTest DmsFreeInstallCallbackTest_002 end" << std::endl;
89 }
90
91 /**
92 * @tc.name: DmsFreeInstallCallbackTest_003
93 * @tc.desc: invalid param
94 * @tc.type: FUNC
95 */
96 HWTEST_F(DmsFreeInstallCallbackTest, DmsFreeInstallCallbackTest_003, TestSize.Level3)
97 {
98 DTEST_LOG << "DmsFreeInstallCallbackTest DmsFreeInstallCallbackTest_003 begin" << std::endl;
99 int32_t code = 0;
100 MessageParcel data;
101 MessageParcel reply;
102 MessageOption option;
103
104 data.WriteInterfaceToken(DmsFreeInstallCallbackStub::GetDescriptor());
105 int32_t result = dmsFreeInstallCallbackStub_->OnRemoteRequest(code, data, reply, option);
106 EXPECT_EQ(result, ERR_INVALID_VALUE);
107 DTEST_LOG << "DmsFreeInstallCallbackTest DmsFreeInstallCallbackTest_003 end" << std::endl;
108 }
109
110 /**
111 * @tc.name: DmsFreeInstallCallbackTest_004
112 * @tc.desc: test finish install
113 * @tc.type: FUNC
114 */
115 HWTEST_F(DmsFreeInstallCallbackTest, DmsFreeInstallCallbackTest_004, TestSize.Level3)
116 {
117 DTEST_LOG << "DmsFreeInstallCallbackTest DmsFreeInstallCallbackTest_004 begin" << std::endl;
118 int32_t code = 0;
119 MessageParcel data;
120 MessageParcel reply;
121 MessageOption option;
122
123 data.WriteInterfaceToken(DmsFreeInstallCallbackStub::GetDescriptor());
124 data.WriteInt32(0);
125 AAFwk::Want want;
126 data.WriteParcelable(&want);
127 int32_t result = dmsFreeInstallCallbackStub_->OnRemoteRequest(code, data, reply, option);
128 EXPECT_EQ(result, NO_ERROR);
129 DTEST_LOG << "DmsFreeInstallCallbackTest DmsFreeInstallCallbackTest_004 end" << std::endl;
130 }
131
132 /**
133 * @tc.name: DmsFreeInstallCallbackTest_005
134 * @tc.desc: test on install finished
135 * @tc.type: FUNC
136 */
137 HWTEST_F(DmsFreeInstallCallbackTest, DmsFreeInstallCallbackTest_005, TestSize.Level3)
138 {
139 DTEST_LOG << "DmsFreeInstallCallbackTest DmsFreeInstallCallbackTest_005 begin" << std::endl;
140 AAFwk::Want want;
141 int32_t requestCode = -1;
142 int32_t resultCode = -1;
143
144 dmsFreeInstallCallbackProxy_->OnInstallFinished(want, requestCode, resultCode);
145 EXPECT_NE(dmsFreeInstallCallbackProxy_, nullptr);
146 DTEST_LOG << "DmsFreeInstallCallbackTest DmsFreeInstallCallbackTest_005 end" << std::endl;
147 }
148 }
149 }