/proc/self/cwd/test/mocks/http/stream.h
Line | Count | Source (jump to first uncovered line) |
1 | | #pragma once |
2 | | |
3 | | #include "envoy/http/codec.h" |
4 | | |
5 | | #include "source/common/network/socket_impl.h" |
6 | | |
7 | | #include "gmock/gmock.h" |
8 | | |
9 | | namespace Envoy { |
10 | | namespace Http { |
11 | | |
12 | | class MockStream : public Stream { |
13 | | public: |
14 | | MockStream(); |
15 | | ~MockStream() override; |
16 | | |
17 | | // Http::Stream |
18 | | MOCK_METHOD(void, addCallbacks, (StreamCallbacks & callbacks)); |
19 | | MOCK_METHOD(void, removeCallbacks, (StreamCallbacks & callbacks)); |
20 | | MOCK_METHOD(CodecEventCallbacks*, registerCodecEventCallbacks, (CodecEventCallbacks * adapter)); |
21 | | MOCK_METHOD(void, resetStream, (StreamResetReason reason)); |
22 | | MOCK_METHOD(void, readDisable, (bool disable)); |
23 | | MOCK_METHOD(void, setWriteBufferWatermarks, (uint32_t)); |
24 | | MOCK_METHOD(uint32_t, bufferLimit, (), (const)); |
25 | | MOCK_METHOD(const Network::ConnectionInfoProvider&, connectionInfoProvider, ()); |
26 | | MOCK_METHOD(void, setFlushTimeout, (std::chrono::milliseconds timeout)); |
27 | | MOCK_METHOD(Buffer::BufferMemoryAccountSharedPtr, account, (), (const)); |
28 | | MOCK_METHOD(void, setAccount, (Buffer::BufferMemoryAccountSharedPtr)); |
29 | | |
30 | 294k | absl::string_view responseDetails() override { return details_; } |
31 | | |
32 | | // Use the same underlying structure as StreamCallbackHelper to insure iteration stability |
33 | | // if we remove callbacks during iteration. |
34 | | absl::InlinedVector<StreamCallbacks*, 8> callbacks_; |
35 | | Network::ConnectionInfoSetterImpl connection_info_provider_; |
36 | | Buffer::BufferMemoryAccountSharedPtr account_; |
37 | | |
38 | 0 | void runHighWatermarkCallbacks() { |
39 | 0 | for (auto* callback : callbacks_) { |
40 | 0 | if (callback) { |
41 | 0 | callback->onAboveWriteBufferHighWatermark(); |
42 | 0 | } |
43 | 0 | } |
44 | 0 | } |
45 | | |
46 | 0 | void runLowWatermarkCallbacks() { |
47 | 0 | for (auto* callback : callbacks_) { |
48 | 0 | if (callback) { |
49 | 0 | callback->onBelowWriteBufferLowWatermark(); |
50 | 0 | } |
51 | 0 | } |
52 | 0 | } |
53 | | |
54 | 0 | void setDetails(absl::string_view details) { details_ = details; } |
55 | | |
56 | 189k | const StreamInfo::BytesMeterSharedPtr& bytesMeter() override { return bytes_meter_; } |
57 | | |
58 | | CodecEventCallbacks* codec_callbacks_{nullptr}; |
59 | | StreamInfo::BytesMeterSharedPtr bytes_meter_{std::make_shared<StreamInfo::BytesMeter>()}; |
60 | | std::string details_; |
61 | | }; |
62 | | |
63 | | } // namespace Http |
64 | | } // namespace Envoy |