1 /*
2 * Copyright (c) 2022-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 "hilog_tag_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 TAG_LOGI(AAFwkTag::TEST, "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 TAG_LOGI(AAFwkTag::TEST, "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 TAG_LOGI(AAFwkTag::TEST, "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),
91 data, reply, option);
92 EXPECT_EQ(res, NO_ERROR);
93
94 TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Stub_Test_0200 end");
95 }
96
97 /**
98 * @tc.number: Test_Observer_Stub_Test_0300
99 * @tc.name: Test OnRemoteRequest
100 * @tc.desc: Verify the OnRemoteRequest when code is AA_EXECUTE_SHELL_COMMAND return NO_ERROR.
101 */
102 HWTEST_F(TestObserverStubTest, Test_Observer_Stub_Test_0300, Function | MediumTest | Level1)
103 {
104 TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Stub_Test_0300 start");
105
106 MessageParcel data;
107 MessageParcel reply;
108 MessageOption option;
109
110 data.WriteInterfaceToken(TestObserverStub::GetDescriptor());
111 std::string args = "test";
112 data.WriteString(args);
113 data.WriteInt64(0);
114
115 MockTestObserverStub stub;
116 int res = stub.OnRemoteRequest(static_cast<uint32_t>(ITestObserver::Message::AA_EXECUTE_SHELL_COMMAND),
117 data, reply, option);
118 EXPECT_EQ(res, NO_ERROR);
119
120 TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Stub_Test_0300 end");
121 }
122
123 /**
124 * @tc.number: Test_Observer_Stub_Test_0400
125 * @tc.name: Test OnRemoteRequest
126 * @tc.desc: Verify the OnRemoteRequest when code is 0 return IPC_STUB_UNKNOW_TRANS_ERR.
127 */
128 HWTEST_F(TestObserverStubTest, Test_Observer_Stub_Test_0400, Function | MediumTest | Level1)
129 {
130 TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Stub_Test_0400 start");
131
132 MessageParcel data;
133 MessageParcel reply;
134 MessageOption option;
135
136 data.WriteInterfaceToken(TestObserverStub::GetDescriptor());
137 std::string args = "test";
138 data.WriteString(args);
139 data.WriteInt64(0);
140
141 MockTestObserverStub stub;
142 int res = stub.OnRemoteRequest(0, data, reply, option);
143 EXPECT_EQ(res, IPC_STUB_UNKNOW_TRANS_ERR);
144
145 TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Stub_Test_0400 end");
146 }
147
148 /**
149 * @tc.number: Test_Observer_Stub_Test_0500
150 * @tc.name: Test OnRemoteRequest
151 * @tc.desc: Verify the OnRemoteRequest when local descriptor is not equal to remote return ERR_TRANSACTION_FAILED.
152 */
153 HWTEST_F(TestObserverStubTest, Test_Observer_Stub_Test_0500, Function | MediumTest | Level1)
154 {
155 TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Stub_Test_0500 start");
156
157 MessageParcel data;
158 MessageParcel reply;
159 MessageOption option;
160
161 std::string args = "test";
162 data.WriteString(args);
163 data.WriteInt64(0);
164
165 MockTestObserverStub stub;
166 int res = stub.OnRemoteRequest(0, data, reply, option);
167 EXPECT_EQ(res, ERR_TRANSACTION_FAILED);
168
169 TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Stub_Test_0500 end");
170 }