1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef DEVICE_BLUETOOTH_TEST_MOCK_BLUETOOTH_GATT_CHARACTERISTIC_H_
6#define DEVICE_BLUETOOTH_TEST_MOCK_BLUETOOTH_GATT_CHARACTERISTIC_H_
7
8#include <string>
9#include <vector>
10
11#include "base/basictypes.h"
12#include "base/callback.h"
13#include "device/bluetooth/bluetooth_gatt_characteristic.h"
14#include "device/bluetooth/bluetooth_uuid.h"
15#include "testing/gmock/include/gmock/gmock.h"
16
17namespace device {
18
19class BluetoothGattDescriptor;
20class BluetoothGattService;
21class MockBluetoothGattService;
22
23class MockBluetoothGattCharacteristic : public BluetoothGattCharacteristic {
24 public:
25  MockBluetoothGattCharacteristic(MockBluetoothGattService* service,
26                                  const std::string& identifier,
27                                  const BluetoothUUID& uuid,
28                                  bool is_local,
29                                  Properties properties,
30                                  Permissions permissions);
31  virtual ~MockBluetoothGattCharacteristic();
32
33  MOCK_CONST_METHOD0(GetIdentifier, std::string());
34  MOCK_CONST_METHOD0(GetUUID, BluetoothUUID());
35  MOCK_CONST_METHOD0(IsLocal, bool());
36  MOCK_CONST_METHOD0(GetValue, const std::vector<uint8>&());
37  MOCK_CONST_METHOD0(GetService, BluetoothGattService*());
38  MOCK_CONST_METHOD0(GetProperties, Properties());
39  MOCK_CONST_METHOD0(GetPermissions, Permissions());
40  MOCK_CONST_METHOD0(IsNotifying, bool());
41  MOCK_CONST_METHOD0(GetDescriptors, std::vector<BluetoothGattDescriptor*>());
42  MOCK_CONST_METHOD1(GetDescriptor,
43                     BluetoothGattDescriptor*(const std::string&));
44  MOCK_METHOD1(AddDescriptor, bool(BluetoothGattDescriptor*));
45  MOCK_METHOD1(UpdateValue, bool(const std::vector<uint8>&));
46  MOCK_METHOD2(StartNotifySession,
47               void(const NotifySessionCallback&, const ErrorCallback&));
48  MOCK_METHOD2(ReadRemoteCharacteristic,
49               void(const ValueCallback&, const ErrorCallback&));
50  MOCK_METHOD3(WriteRemoteCharacteristic,
51               void(const std::vector<uint8>&,
52                    const base::Closure&,
53                    const ErrorCallback&));
54
55 private:
56  DISALLOW_COPY_AND_ASSIGN(MockBluetoothGattCharacteristic);
57};
58
59}  // namespace device
60
61#endif  // DEVICE_BLUETOOTH_TEST_MOCK_BLUETOOTH_GATT_CHARACTERISTIC_H_
62