• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }