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 <gtest/gtest.h>
17 #include "hilog_wrapper.h"
18 #include "iremote_proxy.h"
19 #include "mock_test_observer_stub.h"
20 #include "test_observer_stub.h"
21
22 using namespace testing::ext;
23 using namespace OHOS;
24 using namespace OHOS::AAFwk;
25
26 class TestObserverStubTest : public ::testing::Test {
27 public:
28 static void SetUpTestCase();
29 static void TearDownTestCase();
30 void SetUp() override;
31 void TearDown() override;
32 };
33
SetUpTestCase()34 void TestObserverStubTest::SetUpTestCase()
35 {}
36
TearDownTestCase()37 void TestObserverStubTest::TearDownTestCase()
38 {}
39
SetUp()40 void TestObserverStubTest::SetUp()
41 {}
42
TearDown()43 void TestObserverStubTest::TearDown()
44 {}
45
46 /**
47 * @tc.number: Test_Observer_Stub_Test_0100
48 * @tc.name: Test OnRemoteRequest
49 * @tc.desc: Verify the OnRemoteRequest when code is AA_TEST_STATUS return NO_ERROR.
50 */
51 HWTEST_F(TestObserverStubTest, Test_Observer_Stub_Test_0100, Function | MediumTest | Level1)
52 {
53 HILOG_INFO("Test_Observer_Stub_Test_0100 start");
54
55 MessageParcel data;
56 MessageParcel reply;
57 MessageOption option;
58
59 data.WriteInterfaceToken(TestObserverStub::GetDescriptor());
60 std::string args = "test";
61 data.WriteString(args);
62 data.WriteInt64(0);
63
64 MockTestObserverStub stub;
65 int res = stub.OnRemoteRequest(static_cast<uint32_t>(ITestObserver::Message::AA_TEST_STATUS), data, reply, option);
66 EXPECT_EQ(res, NO_ERROR);
67
68 HILOG_INFO("Test_Observer_Stub_Test_0100 end");
69 }
70
71 /**
72 * @tc.number: Test_Observer_Stub_Test_0200
73 * @tc.name: Test OnRemoteRequest
74 * @tc.desc: Verify the OnRemoteRequest when code is AA_TEST_FINISHED return NO_ERROR.
75 */
76 HWTEST_F(TestObserverStubTest, Test_Observer_Stub_Test_0200, Function | MediumTest | Level1)
77 {
78 HILOG_INFO("Test_Observer_Stub_Test_0200 start");
79
80 MessageParcel data;
81 MessageParcel reply;
82 MessageOption option;
83
84 std::string args = "test";
85 data.WriteInterfaceToken(TestObserverStub::GetDescriptor());
86 data.WriteString(args);
87 data.WriteInt64(0);
88
89 MockTestObserverStub stub;
90 int res = stub.OnRemoteRequest(static_cast<uint32_t>(ITestObserver::Message::AA_TEST_FINISHED), data, reply, option);
91 EXPECT_EQ(res, NO_ERROR);
92
93 HILOG_INFO("Test_Observer_Stub_Test_0200 end");
94 }
95
96 /**
97 * @tc.number: Test_Observer_Stub_Test_0300
98 * @tc.name: Test OnRemoteRequest
99 * @tc.desc: Verify the OnRemoteRequest when code is AA_EXECUTE_SHELL_COMMAND return NO_ERROR.
100 */
101 HWTEST_F(TestObserverStubTest, Test_Observer_Stub_Test_0300, Function | MediumTest | Level1)
102 {
103 HILOG_INFO("Test_Observer_Stub_Test_0300 start");
104
105 MessageParcel data;
106 MessageParcel reply;
107 MessageOption option;
108
109 data.WriteInterfaceToken(TestObserverStub::GetDescriptor());
110 std::string args = "test";
111 data.WriteString(args);
112 data.WriteInt64(0);
113
114 MockTestObserverStub stub;
115 int res = stub.OnRemoteRequest(static_cast<uint32_t>(ITestObserver::Message::AA_EXECUTE_SHELL_COMMAND), data, reply, option);
116 EXPECT_EQ(res, NO_ERROR);
117
118 HILOG_INFO("Test_Observer_Stub_Test_0300 end");
119 }
120
121 /**
122 * @tc.number: Test_Observer_Stub_Test_0400
123 * @tc.name: Test OnRemoteRequest
124 * @tc.desc: Verify the OnRemoteRequest when code is 0 return IPC_STUB_UNKNOW_TRANS_ERR.
125 */
126 HWTEST_F(TestObserverStubTest, Test_Observer_Stub_Test_0400, Function | MediumTest | Level1)
127 {
128 HILOG_INFO("Test_Observer_Stub_Test_0400 start");
129
130 MessageParcel data;
131 MessageParcel reply;
132 MessageOption option;
133
134 data.WriteInterfaceToken(TestObserverStub::GetDescriptor());
135 std::string args = "test";
136 data.WriteString(args);
137 data.WriteInt64(0);
138
139 MockTestObserverStub stub;
140 int res = stub.OnRemoteRequest(0, data, reply, option);
141 EXPECT_EQ(res, IPC_STUB_UNKNOW_TRANS_ERR);
142
143 HILOG_INFO("Test_Observer_Stub_Test_0400 end");
144 }
145
146 /**
147 * @tc.number: Test_Observer_Stub_Test_0500
148 * @tc.name: Test OnRemoteRequest
149 * @tc.desc: Verify the OnRemoteRequest when local descriptor is not equal to remote return ERR_TRANSACTION_FAILED.
150 */
151 HWTEST_F(TestObserverStubTest, Test_Observer_Stub_Test_0500, Function | MediumTest | Level1)
152 {
153 HILOG_INFO("Test_Observer_Stub_Test_0500 start");
154
155 MessageParcel data;
156 MessageParcel reply;
157 MessageOption option;
158
159 std::string args = "test";
160 data.WriteString(args);
161 data.WriteInt64(0);
162
163 MockTestObserverStub stub;
164 int res = stub.OnRemoteRequest(0, data, reply, option);
165 EXPECT_EQ(res, ERR_TRANSACTION_FAILED);
166
167 HILOG_INFO("Test_Observer_Stub_Test_0500 end");
168 }