|  | #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_ |