• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 <iostream>
18 #include <memory>
19 #include "net_eap_callback_stub.h"
20 
21 namespace OHOS {
22 namespace NetManagerStandard {
23 using namespace testing::ext;
24 class MockNetEapPostbackCallbackStubTest : public NetEapPostbackCallbackStub {
25 public:
26     MockNetEapPostbackCallbackStubTest() = default;
~MockNetEapPostbackCallbackStubTest()27     ~MockNetEapPostbackCallbackStubTest() override {}
OnEapSupplicantPostback(NetType netType,const sptr<EapData> & eapData)28     int32_t OnEapSupplicantPostback(NetType netType, const sptr<EapData> &eapData) override
29     {
30         std::cout << std::endl;
31         std::cout << "OnEapSupplicantPostback" << std::endl;
32         return 0;
33     }
34 };
35 
36 class MockNetRegisterEapCallbackStubTest : public NetRegisterEapCallbackStub {
37 public:
38     MockNetRegisterEapCallbackStubTest() = default;
~MockNetRegisterEapCallbackStubTest()39     ~MockNetRegisterEapCallbackStubTest() override {}
OnRegisterCustomEapCallback(const std::string & regCmd)40     int32_t OnRegisterCustomEapCallback(const std::string &regCmd) override
41     {
42         std::cout << std::endl;
43         std::cout << "OnRegisterCustomEapCallback" << std::endl;
44         return 0;
45     }
46 
OnReplyCustomEapDataEvent(int result,const sptr<EapData> & eapData)47     int32_t OnReplyCustomEapDataEvent(int result, const sptr<EapData> &eapData) override
48     {
49         std::cout << std::endl;
50         std::cout << "OnReplyCustomEapDataEvent" << std::endl;
51         return 0;
52     }
53 };
54 
55 class NetEapCallbackStubTest : public testing::Test {
56 public:
57     static void SetUpTestCase();
58     static void TearDownTestCase();
59     void SetUp();
60     void TearDown();
61 
62     static inline std::shared_ptr<NetEapPostbackCallbackStub> eapPostbackPtr =
63         std::make_shared<MockNetEapPostbackCallbackStubTest>();
64     static inline std::shared_ptr<NetRegisterEapCallbackStub> registerEapPtr =
65         std::make_shared<MockNetRegisterEapCallbackStubTest>();
66 };
67 
SetUpTestCase()68 void NetEapCallbackStubTest::SetUpTestCase() {}
69 
TearDownTestCase()70 void NetEapCallbackStubTest::TearDownTestCase() {}
71 
SetUp()72 void NetEapCallbackStubTest::SetUp() {}
73 
TearDown()74 void NetEapCallbackStubTest::TearDown() {}
75 
76 /**
77  * @tc.name: OnRemoteRequest001
78  * @tc.desc: Test NetEapCallbackStubTest OnRemoteRequest.
79  * @tc.type: FUNC
80  */
81 HWTEST_F(NetEapCallbackStubTest, OnRemoteRequest001, TestSize.Level1)
82 {
83     MessageParcel data;
84     MessageParcel reply;
85     MessageOption option;
86     int32_t ret = eapPostbackPtr->OnRemoteRequest(100, data, reply, option);
87     EXPECT_EQ(ret, NETMANAGER_ERR_DESCRIPTOR_MISMATCH);
88 
89     data.WriteInterfaceToken(NetEapPostbackCallbackStub::GetDescriptor());
90     ret = eapPostbackPtr->OnRemoteRequest(100, data, reply, option);
91     EXPECT_EQ(ret, IPC_STUB_UNKNOW_TRANS_ERR);
92 }
93 
94 /**
95  * @tc.name: OnEapSupplicantPostbackTest001
96  * @tc.desc: Test NetEapPostbackCallbackStub OnEapSupplicantPostback.
97  * @tc.type: FUNC
98  */
99 HWTEST_F(NetEapCallbackStubTest, OnEapSupplicantPostbackTest001, TestSize.Level1)
100 {
101     MessageParcel data;
102     MessageParcel reply;
103     MessageOption option;
104     data.WriteInterfaceToken(NetEapPostbackCallbackStub::GetDescriptor());
105     data.WriteInt32(1);
106     sptr<EapData> eapData = new (std::nothrow) EapData();
107     eapData->eapCode = 1;
108     eapData->eapType = 13;
109     eapData->msgId = 55;
110     eapData->bufferLen = 4;
111     std::vector<uint8_t> tmp = {0x11, 0x12};
112     eapData->eapBuffer = tmp;
113     eapData->Marshalling(data);
114     int32_t ret = eapPostbackPtr->OnRemoteRequest(static_cast<uint32_t>(NetEapIpcCode::NET_EAP_POSTBACK),
115                                              data, reply, option);
116     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
117 }
118 
119 /**
120  * @tc.name: OnRegisterCustomEapCallbackTest001
121  * @tc.desc: Test NetRegisterEapCallbackStub OnRegisterCustomEapCallback.
122  * @tc.type: FUNC
123  */
124 HWTEST_F(NetEapCallbackStubTest, OnRegisterCustomEapCallbackTest001, TestSize.Level1)
125 {
126     MessageParcel data;
127     MessageParcel reply;
128     MessageOption option;
129     data.WriteInterfaceToken(NetRegisterEapCallbackStub::GetDescriptor());
130     std::string regCmd = "2:277:278";
131     data.WriteString(regCmd);
132     int32_t ret = registerEapPtr->OnRemoteRequest(static_cast<uint32_t>(NetEapIpcCode::NET_REPLY_CUSTOM_EAPDATA),
133                                              data, reply, option);
134     EXPECT_TRUE(ret == NETMANAGER_SUCCESS || ret == NETMANAGER_ERR_LOCAL_PTR_NULL);
135 }
136 
137 /**
138  * @tc.name: OnReplyCustomEapDataEventTest001
139  * @tc.desc: Test NetRegisterEapCallbackStub OnReplyCustomEapDataEvent.
140  * @tc.type: FUNC
141  */
142 HWTEST_F(NetEapCallbackStubTest, OnReplyCustomEapDataEventTest001, TestSize.Level1)
143 {
144     MessageParcel data;
145     MessageParcel reply;
146     MessageOption option;
147     data.WriteInterfaceToken(NetRegisterEapCallbackStub::GetDescriptor());
148     int result = 1;
149     std::string strEapData = "55:4:abcd";
150 
151     data.WriteInt32(result);
152     data.WriteString(strEapData);
153     int32_t ret = registerEapPtr->OnRemoteRequest(static_cast<uint32_t>(NetEapIpcCode::NET_REPLY_CUSTOM_EAPDATA),
154                                              data, reply, option);
155     EXPECT_EQ(ret, NETMANAGER_SUCCESS);
156 }
157 
158 } // namespace NetManagerStandard
159 } // namespace OHOS