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 CONNECTION_BLE_MANAGER_MOCK_H 17 #define CONNECTION_BLE_MANAGER_MOCK_H 18 19 #include "cJSON.h" 20 #include <gmock/gmock.h> 21 #include <mutex> 22 23 #include "bus_center_event.h" 24 #include "conn_log.h" 25 #include "disc_interface.h" 26 #include "message_handler.h" 27 #include "softbus_adapter_ble_gatt_client.h" 28 #include "softbus_adapter_ble_gatt_server.h" 29 #include "softbus_adapter_bt_common.h" 30 #include "softbus_conn_common.h" 31 #include "softbus_common.h" 32 #include "softbus_config_type.h" 33 #include "softbus_conn_ble_connection.h" 34 35 namespace OHOS { 36 class ConnectionBleManagerInterface { 37 public: ConnectionBleManagerInterface()38 ConnectionBleManagerInterface() {}; ~ConnectionBleManagerInterface()39 virtual ~ConnectionBleManagerInterface() {}; 40 41 virtual int32_t ConnBlePostBytesInner(uint32_t connectionId, uint8_t *data, uint32_t dataLen, int32_t pid, 42 int32_t flag, int32_t module, int64_t seq, PostBytesFinishAction postBytesFinishAction) = 0; 43 virtual int32_t LnnGetConnSubFeatureByUdidHashStr(const char *udidHashStr, uint64_t *connSubFeature) = 0; 44 virtual int32_t LnnRegisterEventHandler(LnnEventType event, LnnEventHandler handler) = 0; 45 virtual int64_t ConnBlePackCtlMessage( 46 BleCtlMessageSerializationContext ctx, uint8_t **outData, uint32_t *outLen) = 0; 47 virtual int32_t LnnGetRemoteStrInfo(const char *netWorkId, InfoKey key, char *info, uint32_t len) = 0; 48 virtual int32_t LnnGetLocalStrInfo(InfoKey key, char *info, uint32_t len) = 0; 49 virtual int32_t LnnGetLocalNumInfo(InfoKey key, int32_t *info) = 0; 50 51 virtual int SoftBusGattsAddDescriptor(int srvcHandle, SoftBusBtUuid descUuid, int permissions) = 0; 52 virtual int SoftBusGattsAddCharacteristic( 53 int srvcHandle, SoftBusBtUuid characUuid, int properties, int permissions) = 0; 54 virtual int SoftBusGattsStartService(int srvcHandle) = 0; 55 virtual int SoftBusGattsSendResponse(SoftBusGattsResponse *param) = 0; 56 virtual ConnBleConnection *LegacyBleCreateConnection( 57 const char *addr, ConnSideType side, int32_t underlayerHandle, bool fastestConnectEnable) = 0; 58 virtual int32_t LegacyBleSaveConnection(ConnBleConnection *connection) = 0; 59 virtual int32_t ConnGattClientConnect(ConnBleConnection *connection) = 0; 60 virtual int32_t ConnGattClientDisconnect(ConnBleConnection *connection, bool grace, bool refreshGatt) = 0; 61 virtual int32_t ConnGattClientSend( 62 ConnBleConnection *connection, const uint8_t *data, uint32_t dataLen, int32_t module) = 0; 63 virtual int32_t ConnGattClientUpdatePriority(ConnBleConnection *connection, ConnectBlePriority priority) = 0; 64 virtual int32_t ConnGattServerStartService() = 0; 65 virtual int32_t ConnGattServerStopService() = 0; 66 virtual int32_t ConnGattServerSend( 67 ConnBleConnection *connection, const uint8_t *data, uint32_t dataLen, int32_t module) = 0; 68 virtual int32_t ConnGattServerConnect(ConnBleConnection *connection) = 0; 69 virtual int32_t ConnGattServerDisconnect(ConnBleConnection *connection) = 0; 70 virtual int32_t ConnGattInitClientModule(SoftBusLooper *looper, const ConnBleClientEventListener *listener) = 0; 71 virtual int32_t ConnGattInitServerModule(SoftBusLooper *looper, const ConnBleServerEventListener *listener) = 0; 72 virtual bool GetJsonObjectSignedNumberItem(const cJSON *json, const char * const str, int32_t *target) = 0; 73 virtual bool GetJsonObjectNumber16Item(const cJSON *json, const char * const str, uint16_t *target) = 0; 74 }; 75 76 class ConnectionBleManagerInterfaceMock : public ConnectionBleManagerInterface { 77 public: 78 ConnectionBleManagerInterfaceMock(); 79 ~ConnectionBleManagerInterfaceMock() override; 80 81 MOCK_METHOD2(SoftbusGattcConnect, int32_t(int32_t, SoftBusBtAddr *)); 82 MOCK_METHOD1(BleGattcDisconnect, int(int)); 83 MOCK_METHOD3(SoftBusGattsAddService, int(SoftBusBtUuid, bool, int)); 84 MOCK_METHOD1(SoftBusGattsStopService, int(int)); 85 86 MOCK_METHOD1(SoftbusGattcRefreshServices, int32_t(int32_t)); 87 MOCK_METHOD1(SoftbusGattcSearchServices, int32_t(int32_t)); 88 89 MOCK_METHOD2(LnnRegisterEventHandler, int32_t(LnnEventType, LnnEventHandler)); 90 MOCK_METHOD4(LnnGetRemoteStrInfo, int32_t(const char *, InfoKey, char *, uint32_t)); 91 92 MOCK_METHOD(int32_t, ConnBlePostBytesInner, 93 (uint32_t, uint8_t *, uint32_t, int32_t, int32_t, int32_t, int64_t, PostBytesFinishAction), (override)); 94 MOCK_METHOD(int32_t, LnnGetConnSubFeatureByUdidHashStr, (const char *, uint64_t *), (override)); 95 MOCK_METHOD( 96 int64_t, ConnBlePackCtlMessage, (BleCtlMessageSerializationContext, uint8_t **, uint32_t *), (override)); 97 MOCK_METHOD(int32_t, LnnGetLocalStrInfo, (InfoKey, char *, uint32_t), (override)); 98 MOCK_METHOD(int32_t, LnnGetLocalNumInfo, (InfoKey, int32_t *), (override)); 99 100 MOCK_METHOD(int, SoftBusGattsAddDescriptor, (int, SoftBusBtUuid, int), (override)); 101 MOCK_METHOD(int, SoftBusGattsAddCharacteristic, (int, SoftBusBtUuid, int, int), (override)); 102 MOCK_METHOD(int, SoftBusGattsStartService, (int), (override)); 103 MOCK_METHOD(int, SoftBusGattsSendResponse, (SoftBusGattsResponse *), (override)); 104 MOCK_METHOD( 105 ConnBleConnection *, LegacyBleCreateConnection, (const char *, ConnSideType, int32_t, bool), (override)); 106 MOCK_METHOD(int32_t, LegacyBleSaveConnection, (ConnBleConnection *), (override)); 107 MOCK_METHOD(int32_t, ConnGattClientConnect, (ConnBleConnection *), (override)); 108 MOCK_METHOD(int32_t, ConnGattClientDisconnect, (ConnBleConnection *, bool, bool), (override)); 109 MOCK_METHOD(int32_t, ConnGattClientSend, (ConnBleConnection *, const uint8_t *, uint32_t, int32_t), (override)); 110 MOCK_METHOD(int32_t, ConnGattClientUpdatePriority, (ConnBleConnection *, ConnectBlePriority), (override)); 111 MOCK_METHOD(int32_t, ConnGattServerStartService, (), (override)); 112 MOCK_METHOD(int32_t, ConnGattServerStopService, (), (override)); 113 MOCK_METHOD(int32_t, ConnGattServerSend, (ConnBleConnection *, const uint8_t *, uint32_t, int32_t), (override)); 114 MOCK_METHOD(int32_t, ConnGattServerConnect, (ConnBleConnection *), (override)); 115 MOCK_METHOD(int32_t, ConnGattServerDisconnect, (ConnBleConnection *), (override)); 116 MOCK_METHOD(int32_t, ConnGattInitClientModule, 117 (SoftBusLooper *, const ConnBleClientEventListener *), (override)); 118 MOCK_METHOD(int32_t, ConnGattInitServerModule, 119 (SoftBusLooper *, const ConnBleServerEventListener *), (override)); 120 MOCK_METHOD(bool, GetJsonObjectSignedNumberItem, (const cJSON *json, const char * const str, int32_t *target), 121 (override)); 122 MOCK_METHOD( 123 bool, GetJsonObjectNumber16Item, (const cJSON *json, const char * const str, uint16_t *target), (override)); 124 125 static bool ActionOfGetdelta(const cJSON *json, const char * const str, int32_t *target); 126 static bool ActionOfGetPeerRc1(const cJSON *json, const char * const str, int32_t *target); 127 static bool ActionOfGetPeerRc0(const cJSON *json, const char * const str, int32_t *target); 128 }; 129 } // namespace OHOS 130 #endif // CONNECTION_BLE_MANAGER_MOCK_H