17c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// Copyright 2012 Google Inc. All Rights Reserved.
27c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet//
37c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// Licensed under the Apache License, Version 2.0 (the "License");
47c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// you may not use this file except in compliance with the License.
57c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// You may obtain a copy of the License at
67c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet//
77c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet//     http://www.apache.org/licenses/LICENSE-2.0
87c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet//
97c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// Unless required by applicable law or agreed to in writing, software
107c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// distributed under the License is distributed on an "AS IS" BASIS,
117c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
127c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// See the License for the specific language governing permissions and
137c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// limitations under the License.
147c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
157c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet#ifndef TV_GTVREMOTE_TESTS_POLO_WIRE_MOCKS_H_
167c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet#define TV_GTVREMOTE_TESTS_POLO_WIRE_MOCKS_H_
177c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
187c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet#include <gmock/gmock.h>
197c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet#include <polo/wire/polowireinterface.h>
207c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet#include <polo/wire/polowireadapter.h>
217c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet#include <vector>
227c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
237c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetnamespace polo {
247c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetnamespace wire {
257c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
267c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// A mock PoloWireInterface.
277c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetclass MockWireInterface : public PoloWireInterface {
287c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet public:
297c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(Send, void(const std::vector<uint8_t>& data));
307c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(Receive, void(size_t num_bytes));
317c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet};
327c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
337c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet// A mock PoloWireAdapter.
347c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetclass MockWireAdapter : public PoloWireAdapter {
357c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet public:
367c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  explicit MockWireAdapter(PoloWireInterface* interface)
377c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet      : PoloWireAdapter(interface) {
387c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  }
397c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
407c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD0(GetNextMessage, void());
417c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(SendConfigurationMessage,
427c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet               void(const pairing::message::ConfigurationMessage& message));
437c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(SendConfigurationAckMessage,
447c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet               void(const pairing::message::ConfigurationAckMessage& message));
457c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(SendOptionsMessage,
467c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet               void(const pairing::message::OptionsMessage& message));
477c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(SendPairingRequestMessage,
487c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet               void(const pairing::message::PairingRequestMessage& message));
497c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(SendPairingRequestAckMessage,
507c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet               void(const pairing::message::PairingRequestAckMessage& message));
517c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(SendSecretMessage,
527c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet               void(const pairing::message::SecretMessage& message));
537c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(SendSecretAckMessage,
547c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet               void(const pairing::message::SecretAckMessage& message));
557c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(SendErrorMessage, void(pairing::PoloError error));
567c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD1(OnBytesReceived, void(const std::vector<uint8_t>& data));
577c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  MOCK_METHOD0(OnError, void());
587c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet};
597c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
607c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet}  // namespace wire
617c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet}  // namespace polo
627c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
637c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
647c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet#endif  // TV_GTVREMOTE_TESTS_POLO_WIRE_MOCKS_H_
65