// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_CAST_NET_PACING_MOCK_PACED_PACKET_SENDER_H_
#define MEDIA_CAST_NET_PACING_MOCK_PACED_PACKET_SENDER_H_

#include "media/cast/net/pacing/paced_sender.h"
#include "testing/gmock/include/gmock/gmock.h"

namespace media {
namespace cast {

class MockPacedPacketSender : public PacedPacketSender {
 public:
  MockPacedPacketSender();
  virtual ~MockPacedPacketSender();

  MOCK_METHOD1(SendPackets, bool(const SendPacketVector& packets));
  MOCK_METHOD2(ResendPackets, bool(const SendPacketVector& packets,
                                   const DedupInfo& dedup_info));
  MOCK_METHOD2(SendRtcpPacket, bool(unsigned int ssrc, PacketRef packet));
  MOCK_METHOD1(CancelSendingPacket, void(const PacketKey& packet_key));
};

}  // namespace cast
}  // namespace media

#endif  // MEDIA_CAST_NET_PACING_MOCK_PACED_PACKET_SENDER_H_
