15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved.
25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be
35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file.
45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#ifndef DEVICE_BLUETOOTH_TEST_MOCK_BLUETOOTH_GATT_SERVICE_H_
65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define DEVICE_BLUETOOTH_TEST_MOCK_BLUETOOTH_GATT_SERVICE_H_
75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include <string>
95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include <vector>
105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "device/bluetooth/bluetooth_gatt_service.h"
125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "device/bluetooth/bluetooth_uuid.h"
135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "testing/gmock/include/gmock/gmock.h"
145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace device {
165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass BluetoothGattCharacteristic;
185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass MockBluetoothDevice;
195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass MockBluetoothGattService : public BluetoothGattService {
215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public:
225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MockBluetoothGattService(MockBluetoothDevice* device,
235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                           const std::string& identifier,
245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                           const BluetoothUUID& uuid,
255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                           bool is_primary,
265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                           bool is_local);
275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  virtual ~MockBluetoothGattService();
285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(GetIdentifier, std::string());
305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(GetUUID, BluetoothUUID());
315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(IsLocal, bool());
325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(IsPrimary, bool());
335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(GetDevice, BluetoothDevice*());
345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(GetCharacteristics,
355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                     std::vector<BluetoothGattCharacteristic*>());
365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD0(GetIncludedServices, std::vector<BluetoothGattService*>());
375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_CONST_METHOD1(GetCharacteristic,
385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                     BluetoothGattCharacteristic*(const std::string&));
395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_METHOD1(AddCharacteristic, bool(BluetoothGattCharacteristic*));
405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_METHOD1(AddIncludedService, bool(BluetoothGattService*));
415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_METHOD2(Register, void(const base::Closure&, const ErrorCallback&));
425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  MOCK_METHOD2(Unregister, void(const base::Closure&, const ErrorCallback&));
435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu private:
455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  DISALLOW_COPY_AND_ASSIGN(MockBluetoothGattService);
465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu};
475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}  // namespace device
495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
505c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif  // DEVICE_BLUETOOTH_TEST_MOCK_BLUETOOTH_GATT_SERVICE_H_
51