1 /* 2 * Copyright (c) Facebook, Inc. and its affiliates. 3 * 4 * This source code is licensed under the MIT license found in the 5 * LICENSE file in the root directory of this source tree. 6 * 7 */ 8 9 #pragma once 10 11 #include <folly/io/async/EventBase.h> 12 #include <folly/portability/GMock.h> 13 #include "quic/QuicException.h" 14 15 #include <quic/state/QuicTransportStatsCallback.h> 16 17 namespace quic { 18 19 class MockQuicStats : public QuicTransportStatsCallback { 20 public: 21 MOCK_METHOD0(onPacketReceived, void()); 22 MOCK_METHOD0(onDuplicatedPacketReceived, void()); 23 MOCK_METHOD0(onOutOfOrderPacketReceived, void()); 24 MOCK_METHOD0(onPacketProcessed, void()); 25 MOCK_METHOD0(onPacketSent, void()); 26 MOCK_METHOD0(onPacketRetransmission, void()); 27 MOCK_METHOD0(onPacketLoss, void()); 28 MOCK_METHOD0(onPacketSpuriousLoss, void()); 29 MOCK_METHOD0(onPersistentCongestion, void()); 30 MOCK_METHOD1(onPacketDropped, void(PacketDropReason)); 31 MOCK_METHOD0(onPacketForwarded, void()); 32 MOCK_METHOD0(onForwardedPacketReceived, void()); 33 MOCK_METHOD0(onForwardedPacketProcessed, void()); 34 MOCK_METHOD1(onClientInitialReceived, void(QuicVersion)); 35 MOCK_METHOD0(onConnectionRateLimited, void()); 36 MOCK_METHOD0(onNewConnection, void()); 37 MOCK_METHOD1(onConnectionClose, void(folly::Optional<QuicErrorCode>)); 38 MOCK_METHOD0(onNewQuicStream, void()); 39 MOCK_METHOD0(onQuicStreamClosed, void()); 40 MOCK_METHOD1(onQuicStreamReset, void(QuicErrorCode)); 41 MOCK_METHOD0(onConnFlowControlUpdate, void()); 42 MOCK_METHOD0(onConnFlowControlBlocked, void()); 43 MOCK_METHOD0(onStatelessReset, void()); 44 MOCK_METHOD0(onStreamFlowControlUpdate, void()); 45 MOCK_METHOD0(onStreamFlowControlBlocked, void()); 46 MOCK_METHOD0(onCwndBlocked, void()); 47 MOCK_METHOD1(onNewCongestionController, void(CongestionControlType)); 48 MOCK_METHOD0(onPTO, void()); 49 MOCK_METHOD1(onRead, void(size_t)); 50 MOCK_METHOD1(onWrite, void(size_t)); 51 MOCK_METHOD1(onUDPSocketWriteError, void(SocketErrorType)); 52 MOCK_METHOD0(onConnectionD6DStarted, void()); 53 MOCK_METHOD0(onConnectionPMTURaised, void()); 54 MOCK_METHOD0(onConnectionPMTUBlackholeDetected, void()); 55 MOCK_METHOD0(onConnectionPMTUUpperBoundDetected, void()); 56 MOCK_METHOD1(onTransportKnobApplied, void(TransportKnobType)); 57 MOCK_METHOD1(onTransportKnobError, void(TransportKnobType)); 58 MOCK_METHOD0(onServerUnfinishedHandshake, void()); 59 MOCK_METHOD0(onZeroRttBuffered, void()); 60 MOCK_METHOD0(onZeroRttBufferedPruned, void()); 61 MOCK_METHOD0(onZeroRttAccepted, void()); 62 MOCK_METHOD0(onZeroRttRejected, void()); 63 }; 64 65 class MockQuicStatsFactory : public QuicTransportStatsCallbackFactory { 66 public: 67 ~MockQuicStatsFactory() override = default; 68 69 MOCK_METHOD0(make, std::unique_ptr<QuicTransportStatsCallback>()); 70 }; 71 } // namespace quic 72