Coverage Report

Created: 2024-09-19 09:45

/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