1 /*
2  * Copyright (C) 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 #ifndef OHOS_MOCK_WIFI_CONFIG_CENTER_H
17 #define OHOS_MOCK_WIFI_CONFIG_CENTER_H
18 
19 #include <gmock/gmock.h>
20 #include "wifi_internal_msg.h"
21 #include "mock_wifi_scan_config.h"
22 
23 namespace OHOS {
24 namespace Wifi {
25 using ChannelsTable = std::map<BandType, std::vector<int32_t>>;
26 
27 class MockWifiConfigCenter {
28 public:
29     virtual ~MockWifiConfigCenter() = default;
30     virtual void SetWifiSelfcureReset(const bool isReset) = 0;
31     virtual bool GetWifiSelfcureReset() const = 0;
32     virtual void SetWifiSelfcureResetEntered(const bool isReset) = 0;
33     virtual bool GetWifiSelfcureResetEntered() = 0;
34     virtual void SetLastNetworkId(const int networkId) = 0;
35     virtual int GetLastNetworkId() const = 0;
36     virtual void SetWifiAllowSemiActive(bool isAllowed) = 0;
37     virtual bool GetWifiAllowSemiActive() const = 0;
38     virtual void SetWifiStopState(bool state) = 0;
39     virtual bool GetWifiStopState() const= 0;
40     virtual void SetStaIfaceName(const std::string &ifaceName) = 0;
41     virtual std::string GetStaIfaceName() = 0;
42     virtual int GetWifiState(int instId = 0) = 0;
43     virtual int SetWifiState(int state, int instId = 0) = 0;
44     virtual WifiDetailState GetWifiDetailState(int instId = 0) = 0;
45     virtual int SetWifiDetailState(WifiDetailState state, int instId) = 0;
46     virtual int GetIpInfo(IpInfo &info, int instId = 0) = 0;
47     virtual int SaveIpInfo(const IpInfo &info, int instId = 0) = 0;
48     virtual int GetIpv6Info(IpV6Info &info, int instId = 0) = 0;
49     virtual int SaveIpV6Info(const IpV6Info &info, int instId = 0) = 0;
50     virtual std::map<int, WifiLinkedInfo> GetAllWifiLinkedInfo() = 0;
51     virtual int GetLinkedInfo(WifiLinkedInfo &info, int instId = 0) = 0;
52     virtual int SaveLinkedInfo(const WifiLinkedInfo &info, int instId = 0) = 0;
53     virtual void UpdateLinkedChannelWidth(std::string bssid, WifiChannelWidth channelWidth, int instId = 0) = 0;
54     virtual int SetMacAddress(const std::string &macAddress, int instId = 0) = 0;
55     virtual int GetMacAddress(std::string &macAddress, int instId = 0) = 0;
56     virtual void SetUserLastSelectedNetworkId(int networkId, int instId = 0) = 0;
57     virtual int GetUserLastSelectedNetworkId(int instId = 0) = 0;
58     virtual time_t GetUserLastSelectedNetworkTimeVal(int instId = 0) = 0;
59     virtual std::string GetConnectTimeoutBssid(int instId = 0) = 0;
60     virtual int SetConnectTimeoutBssid(std::string &bssid, int instId = 0) = 0;
61     virtual void SaveDisconnectedReason(DisconnectedReason discReason, int instId = 0) = 0;
62     virtual int GetDisconnectedReason(DisconnectedReason &discReason, int instId = 0) = 0;
63     virtual void InsertWifiCategoryBlackListCache(int blacklistType, const std::string currentBssid,
64         const WifiCategoryBlackListInfo wifiBlackListInfo) = 0;
65     virtual void RemoveWifiCategoryBlackListCache(int blacklistType, const std::string bssid) = 0;
66     virtual int GetWifiCategoryBlackListCache(int blacklistType,
67 	    std::map<std::string, WifiCategoryBlackListInfo> &blackListCache) = 0;
68     virtual void UpdateWifiConnectFailListCache(int blacklistType, const std::string bssid,
69         const WifiCategoryConnectFailInfo connectFailInfo) = 0;
70     virtual void RemoveWifiConnectFailListCache(const std::string bssid) = 0;
71     virtual int GetWifiConnectFailListCache(
72 	    std::map<std::string, WifiCategoryConnectFailInfo> &connectFailCache) = 0;
73     virtual bool EnableNetwork(int networkId, bool disableOthers, int instId = 0) = 0;
74     virtual void SetAppPackageName(const std::string &name) = 0;
75     virtual const std::string GetAppPackageName() = 0;
76     virtual void SetAppRunningState(ScanMode appRunMode) = 0;
77     virtual ScanMode GetAppRunningState() const = 0;
78     virtual int GetScanControlInfo(ScanControlInfo &info, int instId = 0) = 0;
79     virtual int SetScanControlInfo(const ScanControlInfo &info, int instId = 0) = 0;
80     virtual int GetAbnormalApps(std::vector<std::string> &abnormalAppList) = 0;
81     virtual int SaveScanInfoList(const std::vector<WifiScanInfo> &results) = 0;
82     virtual int ClearScanInfoList() = 0;
83     virtual int GetScanInfoList(std::vector<WifiScanInfo> &results) = 0;
84     virtual int SetWifiLinkedStandardAndMaxSpeed(WifiLinkedInfo &linkInfo) = 0;
85     virtual std::string GetConnectedBssid(int instId = 0) = 0;
86     virtual std::string GetApIfaceName() = 0;
87     virtual int SetHotspotState(int state, int id = 0) = 0;
88     virtual int SetPowerModel(const PowerModel& model, int id = 0)= 0;
89     virtual int GetPowerModel(PowerModel& model, int id = 0) = 0;
90     virtual int GetStationList(std::vector<StationInfo> &results, int id = 0) = 0;
91     virtual int ManageStation(const StationInfo &info, int mode, int id = 0) = 0;
92     virtual int ClearStationList(int id = 0)= 0;
93     virtual int GetHid2dUpperScene(int uid, Hid2dUpperScene &scene) = 0;
94     virtual int SetP2pBusinessType(const P2pBusinessType &type) = 0;
95     virtual int GetP2pBusinessType(P2pBusinessType &type) = 0;
96     virtual int SaveP2pInfo(WifiP2pLinkedInfo &linkedInfo) = 0;
97     virtual int GetP2pInfo(WifiP2pLinkedInfo &linkedInfo) = 0;
98     virtual WifiP2pGroupInfo GetCurrentP2pGroupInfo() = 0;
99     virtual void SetCoexSupport(bool isSupport) = 0;
100     virtual bool GetCoexSupport() const = 0;
101     virtual void SetScreenState(const int &state) = 0;
102     virtual int GetScreenState() const = 0;
103     virtual void SetThermalLevel(const int &level) = 0;
104     virtual int GetThermalLevel() const = 0;
105     virtual bool SetWifiStateOnAirplaneChanged(const int &state);
106     virtual void SetWifiToggledState(int state) = 0;
107     virtual int GetFreezeModeState() const = 0;
108     virtual void SetThreadStatusFlag(bool state) = 0;
109     virtual int SetChangeDeviceConfig(ConfigChange value, const WifiDeviceConfig &config) = 0;
110     virtual void SetWifiConnectedMode(bool isContainerConnected, int instId = 0) = 0;
111     virtual bool GetWifiConnectedMode(int instId = 0) = 0;
112     virtual WifiOprMidState GetScanMidState(int instId = 0) = 0;
113     virtual void SetScanMidState(WifiOprMidState state, int instId = 0) = 0;
114     virtual bool SetScanMidState(WifiOprMidState expState, WifiOprMidState state, int instId = 0) = 0;
115     virtual WifiOprMidState GetWifiMidState(int instId = 0) = 0;
116     virtual void SetWifiMidState(WifiOprMidState state, int instId = 0) = 0;
117     virtual bool SetWifiMidState(WifiOprMidState expState, WifiOprMidState state, int instId = 0) = 0;
118     virtual WifiOprMidState GetP2pMidState() = 0;
119     virtual void SetP2pMidState(WifiOprMidState state) = 0;
120     virtual bool SetP2pMidState(WifiOprMidState expState, WifiOprMidState state) = 0;
121     virtual WifiOprMidState GetWifiScanOnlyMidState(int instId = 0) = 0;
122     virtual bool SetWifiScanOnlyMidState(WifiOprMidState expState, WifiOprMidState state, int instId = 0) = 0;
123     virtual void SetWifiScanOnlyMidState(WifiOprMidState state, int instId = 0) = 0;
124     virtual WifiOprMidState GetApMidState(int id = 0) = 0;
125     virtual bool SetApMidState(WifiOprMidState expState, WifiOprMidState state, int id = 0) = 0;
126     virtual void SetApMidState(WifiOprMidState state, int id = 0) = 0;
127     virtual int GetAirplaneModeState() const = 0;
128     virtual int GetHotspotState(int id = 0) = 0;
129     virtual int SetP2pEnhanceState(int state = 0) = 0;
130     virtual int GetP2pEnhanceState() = 0;
131     virtual void ClearLocalHid2dInfo(int uid = 0) = 0;
132     virtual void UpdateLinkedInfo(int instId) = 0;
133 };
134 
135 class WifiConfigCenter : public MockWifiConfigCenter {
136 public:
137     static WifiConfigCenter &GetInstance();
138     std::unique_ptr<WifiScanConfig>& GetWifiScanConfig();
139 
140     MOCK_METHOD1(SetWifiSelfcureReset, void(const bool isReset));
141     MOCK_CONST_METHOD0(GetWifiSelfcureReset, bool());
142     MOCK_METHOD1(SetWifiSelfcureResetEntered, void(const bool isReset));
143     MOCK_METHOD0(GetWifiSelfcureResetEntered, bool());
144     MOCK_METHOD1(SetLastNetworkId, void(const int networkId));
145     MOCK_CONST_METHOD0(GetLastNetworkId, int());
146     MOCK_METHOD1(SetWifiAllowSemiActive, void(bool isAllowed));
147     MOCK_CONST_METHOD0(GetWifiAllowSemiActive, bool());
148     MOCK_METHOD1(SetWifiStopState, void(bool state));
149     MOCK_CONST_METHOD0(GetWifiStopState, bool());
150     MOCK_METHOD1(SetStaIfaceName, void(const std::string &ifaceName));
151     MOCK_METHOD0(GetStaIfaceName, std::string());
152     MOCK_METHOD1(GetWifiState, int(int));
153     MOCK_METHOD2(SetWifiState, int(int state, int));
154     MOCK_METHOD1(GetWifiDetailState, WifiDetailState(int instId));
155     MOCK_METHOD2(SetWifiDetailState, int(WifiDetailState state, int instId));
156     MOCK_METHOD2(GetIpInfo, int(IpInfo &info, int));
157     MOCK_METHOD2(SaveIpInfo, int(const IpInfo &info, int));
158     MOCK_METHOD2(GetIpv6Info, int(IpV6Info &info, int));
159     MOCK_METHOD2(SaveIpV6Info, int(const IpV6Info &info, int));
160     MOCK_METHOD0(GetAllWifiLinkedInfo, std::map<int, WifiLinkedInfo> ());
161     MOCK_METHOD2(GetLinkedInfo, int(WifiLinkedInfo &info, int));
162     MOCK_METHOD2(SaveLinkedInfo, int(const WifiLinkedInfo &info, int));
163     MOCK_METHOD3(UpdateLinkedChannelWidth, void(std::string bssid, WifiChannelWidth channelWidth, int instId));
164     MOCK_METHOD2(SetMacAddress, int(const std::string &macAddress, int));
165     MOCK_METHOD2(GetMacAddress, int(std::string &macAddress, int));
166     MOCK_METHOD2(SetUserLastSelectedNetworkId, void(int networkId, int));
167     MOCK_METHOD1(GetUserLastSelectedNetworkId, int(int));
168     MOCK_METHOD1(GetUserLastSelectedNetworkTimeVal, time_t(int));
169     MOCK_METHOD1(GetConnectTimeoutBssid, std::string(int));
170     MOCK_METHOD2(SetConnectTimeoutBssid, int(std::string &bssid, int));
171     MOCK_METHOD2(SaveDisconnectedReason, void(DisconnectedReason discReason, int));
172     MOCK_METHOD2(GetDisconnectedReason, int(DisconnectedReason &discReason, int instId));
173     MOCK_METHOD3(InsertWifiCategoryBlackListCache, void(int blacklistType, const std::string currentBssid,
174         const WifiCategoryBlackListInfo wifiBlackListInfo));
175     MOCK_METHOD2(RemoveWifiCategoryBlackListCache, void(int blacklistType, const std::string bssid));
176     MOCK_METHOD2(GetWifiCategoryBlackListCache, int(
177 	    int blacklistType, std::map<std::string, WifiCategoryBlackListInfo> &blackListCache));
178 	MOCK_METHOD3(UpdateWifiConnectFailListCache, void(int blacklistType, const std::string currentBssid,
179         const WifiCategoryConnectFailInfo connectFailInfo));
180     MOCK_METHOD1(RemoveWifiConnectFailListCache, void(const std::string bssid));
181     MOCK_METHOD1(GetWifiConnectFailListCache, int(
182 	    std::map<std::string, WifiCategoryConnectFailInfo> &connectFailCache));
183     MOCK_METHOD3(EnableNetwork, bool(int networkId, bool disableOthers, int));
184     MOCK_METHOD1(SetAppPackageName, void(const std::string &name));
185     MOCK_METHOD0(GetAppPackageName, const std::string());
186     MOCK_METHOD1(SetAppRunningState, void(ScanMode appRunMode));
187     MOCK_CONST_METHOD0(GetAppRunningState, ScanMode());
188     MOCK_METHOD2(GetScanControlInfo, int(ScanControlInfo &info, int));
189     MOCK_METHOD2(SetScanControlInfo, int(const ScanControlInfo &info, int));
190     MOCK_METHOD1(GetAbnormalApps,  int (std::vector<std::string> &abnormalAppList));
191     MOCK_METHOD1(SaveScanInfoList, int(const std::vector<WifiScanInfo> &results));
192     MOCK_METHOD0(ClearScanInfoList, int());
193     MOCK_METHOD1(GetScanInfoList, int(std::vector<WifiScanInfo> &results));
194     MOCK_METHOD1(SetWifiLinkedStandardAndMaxSpeed, int(WifiLinkedInfo &linkInfo));
195     MOCK_METHOD1(GetConnectedBssid, std::string (int instId));
196     MOCK_METHOD0(GetApIfaceName, std::string());
197     MOCK_METHOD2(SetHotspotState, int(int state, int id));
198     MOCK_METHOD2(SetPowerModel, int(const PowerModel& model, int id));
199     MOCK_METHOD2(GetPowerModel, int(PowerModel& model, int id));
200     MOCK_METHOD2(GetStationList, int(std::vector<StationInfo> &results, int id));
201     MOCK_METHOD3(ManageStation, int(const StationInfo &info, int mode, int id));
202     MOCK_METHOD1(ClearStationList, int(int id));
203     MOCK_METHOD2(GetHid2dUpperScene, int(int uid, Hid2dUpperScene &scene));
204     MOCK_METHOD1(SetP2pBusinessType, int(const P2pBusinessType &type));
205     MOCK_METHOD1(GetP2pBusinessType, int(P2pBusinessType &type));
206     MOCK_METHOD1(SaveP2pInfo, int(WifiP2pLinkedInfo &linkedInfo));
207     MOCK_METHOD1(GetP2pInfo, int(WifiP2pLinkedInfo &linkedInfo));
208     MOCK_METHOD0(GetCurrentP2pGroupInfo, WifiP2pGroupInfo());
209     MOCK_METHOD1(SetCoexSupport, void(bool isSupport));
210     MOCK_CONST_METHOD0(GetCoexSupport, bool());
211     MOCK_METHOD1(SetScreenState, void(const int &state));
212     MOCK_CONST_METHOD0(GetScreenState, int());
213     MOCK_METHOD1(SetThermalLevel, void(const int &level));
214     MOCK_CONST_METHOD0(GetThermalLevel, int());
215     MOCK_METHOD1(SetWifiStateOnAirplaneChanged, bool(const int &state));
216     MOCK_METHOD1(SetWifiToggledState, void(int state));
217     MOCK_CONST_METHOD0(GetFreezeModeState, int());
218     MOCK_METHOD1(SetThreadStatusFlag, void(bool state));
219     MOCK_METHOD2(SetChangeDeviceConfig, int(ConfigChange value, const WifiDeviceConfig &config));
220     MOCK_METHOD2(SetWifiConnectedMode, void(bool isContainerConnected, int instId));
221     MOCK_METHOD1(GetWifiConnectedMode, bool(int instId));
222     MOCK_METHOD1(GetScanMidState, WifiOprMidState(int instId));
223     MOCK_METHOD2(SetScanMidState, void(WifiOprMidState state, int instId));
224     MOCK_METHOD3(SetScanMidState, bool(WifiOprMidState expState, WifiOprMidState state, int instId));
225     MOCK_METHOD1(GetWifiMidState, WifiOprMidState(int instId));
226     MOCK_METHOD2(SetWifiMidState, void(WifiOprMidState state, int instId));
227     MOCK_METHOD3(SetWifiMidState, bool(WifiOprMidState expState, WifiOprMidState state, int instId));
228     MOCK_METHOD0(GetP2pMidState, WifiOprMidState(void));
229     MOCK_METHOD1(SetP2pMidState, void(WifiOprMidState state));
230     MOCK_METHOD2(SetP2pMidState, bool(WifiOprMidState expState, WifiOprMidState state));
231     MOCK_METHOD1(GetWifiScanOnlyMidState, WifiOprMidState(int instId));
232     MOCK_METHOD3(SetWifiScanOnlyMidState, bool(WifiOprMidState expState, WifiOprMidState state, int instId));
233     MOCK_METHOD2(SetWifiScanOnlyMidState, void(WifiOprMidState state, int instId));
234     MOCK_METHOD1(GetApMidState, WifiOprMidState(int id));
235     MOCK_METHOD3(SetApMidState, bool(WifiOprMidState expState, WifiOprMidState state, int id));
236     MOCK_METHOD2(SetApMidState, void(WifiOprMidState state, int id));
237     MOCK_CONST_METHOD0(GetAirplaneModeState, int(void));
238     MOCK_METHOD1(GetHotspotState, int(int id));
239     MOCK_METHOD1(SetP2pEnhanceState, int(int state));
240     MOCK_METHOD0(GetP2pEnhanceState, int());
241     MOCK_METHOD1(ClearLocalHid2dInfo, void(int uid));
242     MOCK_METHOD1(UpdateLinkedInfo, void(int instId));
243 
244 private:
245     WifiConfigCenter();
246     std::unique_ptr<WifiScanConfig> wifiScanConfig = nullptr;
247 };
248 }  // namespace OHOS
249 }  // namespace Wifi
250 #endif