| #ifndef QUICHE_HTTP2_ADAPTER_MOCK_NGHTTP2_CALLBACKS_H_ | 
 | #define QUICHE_HTTP2_ADAPTER_MOCK_NGHTTP2_CALLBACKS_H_ | 
 |  | 
 | #include "absl/strings/string_view.h" | 
 | #include "http2/adapter/nghttp2_util.h" | 
 | #include "third_party/nghttp2/src/lib/includes/nghttp2/nghttp2.h" | 
 | #include "common/platform/api/quiche_test.h" | 
 |  | 
 | namespace http2 { | 
 | namespace adapter { | 
 | namespace test { | 
 |  | 
 | // This class provides a set of mock nghttp2 callbacks for use in unit test | 
 | // expectations. | 
 | class MockNghttp2Callbacks { | 
 |  public: | 
 |   MockNghttp2Callbacks() = default; | 
 |  | 
 |   // The caller takes ownership of the |nghttp2_session_callbacks|. | 
 |   static nghttp2_session_callbacks_unique_ptr GetCallbacks(); | 
 |  | 
 |   MOCK_METHOD(ssize_t, | 
 |               Send, | 
 |               (const uint8_t* data, size_t length, int flags), | 
 |               ()); | 
 |  | 
 |   MOCK_METHOD(int, | 
 |               SendData, | 
 |               (nghttp2_frame * frame, | 
 |                const uint8_t* framehd, | 
 |                size_t length, | 
 |                nghttp2_data_source* source), | 
 |               ()); | 
 |  | 
 |   MOCK_METHOD(int, OnBeginHeaders, (const nghttp2_frame* frame), ()); | 
 |  | 
 |   MOCK_METHOD(int, | 
 |               OnHeader, | 
 |               (const nghttp2_frame* frame, | 
 |                absl::string_view name, | 
 |                absl::string_view value, | 
 |                uint8_t flags), | 
 |               ()); | 
 |  | 
 |   MOCK_METHOD(int, | 
 |               OnDataChunkRecv, | 
 |               (uint8_t flags, int32_t stream_id, absl::string_view data), | 
 |               ()); | 
 |  | 
 |   MOCK_METHOD(int, OnBeginFrame, (const nghttp2_frame_hd* hd), ()); | 
 |  | 
 |   MOCK_METHOD(int, OnFrameRecv, (const nghttp2_frame* frame), ()); | 
 |  | 
 |   MOCK_METHOD(int, OnStreamClose, (int32_t stream_id, uint32_t error_code), ()); | 
 |  | 
 |   MOCK_METHOD(int, BeforeFrameSend, (const nghttp2_frame* frame), ()); | 
 |  | 
 |   MOCK_METHOD(int, OnFrameSend, (const nghttp2_frame* frame), ()); | 
 |  | 
 |   MOCK_METHOD(int, | 
 |               OnFrameNotSend, | 
 |               (const nghttp2_frame* frame, int lib_error_code), | 
 |               ()); | 
 |  | 
 |   MOCK_METHOD(int, | 
 |               OnInvalidFrameRecv, | 
 |               (const nghttp2_frame* frame, int error_code), | 
 |               ()); | 
 |  | 
 |   MOCK_METHOD(int, | 
 |               OnErrorCallback2, | 
 |               (int lib_error_code, const char* msg, size_t len), | 
 |               ()); | 
 | }; | 
 |  | 
 | }  // namespace test | 
 | }  // namespace adapter | 
 | }  // namespace http2 | 
 |  | 
 | #endif  // QUICHE_HTTP2_ADAPTER_MOCK_NGHTTP2_CALLBACKS_H_ |