Coverage Report

Created: 2024-09-19 09:45

/proc/self/cwd/test/mocks/stream_info/mocks.h
Line
Count
Source (jump to first uncovered line)
1
#pragma once
2
3
#include "envoy/config/core/v3/base.pb.h"
4
#include "envoy/http/request_id_extension.h"
5
#include "envoy/stream_info/stream_info.h"
6
7
#include "source/common/network/socket_impl.h"
8
#include "source/common/stream_info/filter_state_impl.h"
9
#include "source/common/stream_info/stream_info_impl.h"
10
11
#include "test/mocks/upstream/host.h"
12
#include "test/test_common/simulated_time_system.h"
13
14
#include "gmock/gmock.h"
15
16
namespace testing {
17
18
template <>
19
class Matcher<Envoy::StreamInfo::ResponseFlag>
20
    : public internal::MatcherBase<Envoy::StreamInfo::ResponseFlag> {
21
public:
22
  explicit Matcher() = default;
23
24
  template <typename M, typename = typename std::remove_reference<M>::type::is_gtest_matcher>
25
  Matcher(M&& m) : internal::MatcherBase<Envoy::StreamInfo::ResponseFlag>(std::forward<M>(m)) {}
26
27
0
  Matcher(Envoy::StreamInfo::ResponseFlag value) { *this = Eq(value); }
28
0
  Matcher(Envoy::StreamInfo::CoreResponseFlag value) {
29
0
    *this = Eq(Envoy::StreamInfo::ResponseFlag(value));
30
0
  }
31
32
  explicit Matcher(const MatcherInterface<const Envoy::StreamInfo::ResponseFlag&>* impl)
33
387k
      : internal::MatcherBase<Envoy::StreamInfo::ResponseFlag>(impl) {}
34
35
  template <typename U>
36
  explicit Matcher(const MatcherInterface<U>* impl,
37
                   typename std::enable_if<!std::is_same<U, const U&>::value>::type* = nullptr)
38
      : internal::MatcherBase<Envoy::StreamInfo::ResponseFlag>(impl) {}
39
};
40
41
} // namespace testing
42
43
namespace Envoy {
44
namespace StreamInfo {
45
46
class MockUpstreamInfo : public UpstreamInfo {
47
public:
48
  MockUpstreamInfo();
49
  ~MockUpstreamInfo() override;
50
51
  MOCK_METHOD(void, dumpState, (std::ostream & os, int indent_level), (const));
52
  MOCK_METHOD(void, setUpstreamConnectionId, (uint64_t id));
53
  MOCK_METHOD(absl::optional<uint64_t>, upstreamConnectionId, (), (const));
54
  MOCK_METHOD(void, setUpstreamInterfaceName, (absl::string_view interface_name));
55
  MOCK_METHOD(absl::optional<absl::string_view>, upstreamInterfaceName, (), (const));
56
  MOCK_METHOD(void, setUpstreamSslConnection,
57
              (const Ssl::ConnectionInfoConstSharedPtr& ssl_connection_info));
58
  MOCK_METHOD(Ssl::ConnectionInfoConstSharedPtr, upstreamSslConnection, (), (const));
59
  MOCK_METHOD(UpstreamTiming&, upstreamTiming, ());
60
  MOCK_METHOD(const UpstreamTiming&, upstreamTiming, (), (const));
61
  MOCK_METHOD(void, setUpstreamLocalAddress,
62
              (const Network::Address::InstanceConstSharedPtr& upstream_local_address));
63
  MOCK_METHOD(const Network::Address::InstanceConstSharedPtr&, upstreamLocalAddress, (), (const));
64
  MOCK_METHOD(void, setUpstreamRemoteAddress,
65
              (const Network::Address::InstanceConstSharedPtr& upstream_remote_address));
66
  MOCK_METHOD(const Network::Address::InstanceConstSharedPtr&, upstreamRemoteAddress, (), (const));
67
  MOCK_METHOD(void, setUpstreamTransportFailureReason, (absl::string_view failure_reason));
68
  MOCK_METHOD(const std::string&, upstreamTransportFailureReason, (), (const));
69
  MOCK_METHOD(void, setUpstreamHost, (Upstream::HostDescriptionConstSharedPtr host));
70
  MOCK_METHOD(Upstream::HostDescriptionConstSharedPtr, upstreamHost, (), (const));
71
  MOCK_METHOD(const FilterStateSharedPtr&, upstreamFilterState, (), (const));
72
  MOCK_METHOD(void, setUpstreamFilterState, (const FilterStateSharedPtr& filter_state));
73
  MOCK_METHOD(void, setUpstreamNumStreams, (uint64_t num_streams));
74
  MOCK_METHOD(uint64_t, upstreamNumStreams, (), (const));
75
  MOCK_METHOD(void, setUpstreamProtocol, (Http::Protocol protocol));
76
  MOCK_METHOD(absl::optional<Http::Protocol>, upstreamProtocol, (), (const));
77
78
  absl::optional<uint64_t> upstream_connection_id_;
79
  absl::optional<absl::string_view> interface_name_;
80
  Ssl::ConnectionInfoConstSharedPtr ssl_connection_info_;
81
  UpstreamTiming upstream_timing_;
82
  Network::Address::InstanceConstSharedPtr upstream_local_address_;
83
  Network::Address::InstanceConstSharedPtr upstream_remote_address_;
84
  std::string failure_reason_;
85
  Upstream::HostDescriptionConstSharedPtr upstream_host_;
86
  FilterStateSharedPtr filter_state_;
87
  uint64_t num_streams_ = 0;
88
  absl::optional<Http::Protocol> upstream_protocol_;
89
};
90
91
class MockStreamInfo : public StreamInfo {
92
public:
93
  MockStreamInfo();
94
  ~MockStreamInfo() override;
95
96
  // StreamInfo::StreamInfo
97
  MOCK_METHOD(void, setResponseFlag, (ResponseFlag response_flag));
98
  MOCK_METHOD(void, setResponseCode, (uint32_t));
99
  MOCK_METHOD(void, setResponseCodeDetails, (absl::string_view));
100
  MOCK_METHOD(void, setConnectionTerminationDetails, (absl::string_view));
101
  MOCK_METHOD(void, onUpstreamHostSelected, (Upstream::HostDescriptionConstSharedPtr host));
102
  MOCK_METHOD(SystemTime, startTime, (), (const));
103
  MOCK_METHOD(MonotonicTime, startTimeMonotonic, (), (const));
104
  MOCK_METHOD(TimeSource&, timeSource, (), (const));
105
  MOCK_METHOD(void, setUpstreamInfo, (std::shared_ptr<UpstreamInfo>));
106
  MOCK_METHOD(std::shared_ptr<UpstreamInfo>, upstreamInfo, ());
107
  MOCK_METHOD(OptRef<const UpstreamInfo>, upstreamInfo, (), (const));
108
  MOCK_METHOD(void, onRequestComplete, ());
109
  MOCK_METHOD(absl::optional<std::chrono::nanoseconds>, currentDuration, (), (const));
110
  MOCK_METHOD(absl::optional<std::chrono::nanoseconds>, requestComplete, (), (const));
111
  MOCK_METHOD(DownstreamTiming&, downstreamTiming, ());
112
  MOCK_METHOD(OptRef<const DownstreamTiming>, downstreamTiming, (), (const));
113
  MOCK_METHOD(void, addBytesReceived, (uint64_t));
114
  MOCK_METHOD(uint64_t, bytesReceived, (), (const));
115
  MOCK_METHOD(void, addBytesRetransmitted, (uint64_t));
116
  MOCK_METHOD(uint64_t, bytesRetransmitted, (), (const));
117
  MOCK_METHOD(void, addPacketsRetransmitted, (uint64_t));
118
  MOCK_METHOD(uint64_t, packetsRetransmitted, (), (const));
119
  MOCK_METHOD(void, addWireBytesReceived, (uint64_t));
120
  MOCK_METHOD(uint64_t, wireBytesReceived, (), (const));
121
  MOCK_METHOD(void, setVirtualClusterName,
122
              (const absl::optional<std::string>& virtual_cluster_name));
123
  MOCK_METHOD(const std::string&, getRouteName, (), (const));
124
  MOCK_METHOD(const absl::optional<std::string>&, virtualClusterName, (), (const));
125
  MOCK_METHOD(absl::optional<Http::Protocol>, protocol, (), (const));
126
  MOCK_METHOD(void, protocol, (Http::Protocol protocol));
127
  MOCK_METHOD(absl::optional<uint32_t>, responseCode, (), (const));
128
  MOCK_METHOD(const absl::optional<std::string>&, responseCodeDetails, (), (const));
129
  MOCK_METHOD(const absl::optional<std::string>&, connectionTerminationDetails, (), (const));
130
  MOCK_METHOD(void, addBytesSent, (uint64_t));
131
  MOCK_METHOD(uint64_t, bytesSent, (), (const));
132
  MOCK_METHOD(void, addWireBytesSent, (uint64_t));
133
  MOCK_METHOD(uint64_t, wireBytesSent, (), (const));
134
  MOCK_METHOD(bool, hasResponseFlag, (ResponseFlag), (const));
135
  MOCK_METHOD(bool, hasAnyResponseFlag, (), (const));
136
  MOCK_METHOD(absl::Span<const ResponseFlag>, responseFlags, (), (const));
137
  MOCK_METHOD(uint64_t, legacyResponseFlags, (), (const));
138
  MOCK_METHOD(bool, healthCheck, (), (const));
139
  MOCK_METHOD(void, healthCheck, (bool is_health_check));
140
  MOCK_METHOD(const Network::ConnectionInfoProvider&, downstreamAddressProvider, (), (const));
141
  MOCK_METHOD(Router::RouteConstSharedPtr, route, (), (const));
142
  MOCK_METHOD(envoy::config::core::v3::Metadata&, dynamicMetadata, ());
143
  MOCK_METHOD(const envoy::config::core::v3::Metadata&, dynamicMetadata, (), (const));
144
  MOCK_METHOD(void, setDynamicMetadata, (const std::string&, const ProtobufWkt::Struct&));
145
  MOCK_METHOD(void, setDynamicMetadata,
146
              (const std::string&, const std::string&, const std::string&));
147
  MOCK_METHOD(void, setDynamicTypedMetadata, (const std::string&, const ProtobufWkt::Any& value));
148
  MOCK_METHOD(const FilterStateSharedPtr&, filterState, ());
149
  MOCK_METHOD(const FilterState&, filterState, (), (const));
150
  MOCK_METHOD(void, setRequestHeaders, (const Http::RequestHeaderMap&));
151
  MOCK_METHOD(const Http::RequestHeaderMap*, getRequestHeaders, (), (const));
152
  MOCK_METHOD(void, setUpstreamClusterInfo, (const Upstream::ClusterInfoConstSharedPtr&));
153
  MOCK_METHOD(absl::optional<Upstream::ClusterInfoConstSharedPtr>, upstreamClusterInfo, (),
154
              (const));
155
  MOCK_METHOD(OptRef<const StreamIdProvider>, getStreamIdProvider, (), (const));
156
  MOCK_METHOD(void, setStreamIdProvider, (StreamIdProviderSharedPtr provider));
157
  MOCK_METHOD(void, setTraceReason, (Tracing::Reason reason));
158
  MOCK_METHOD(Tracing::Reason, traceReason, (), (const));
159
  MOCK_METHOD(absl::optional<uint64_t>, connectionID, (), (const));
160
  MOCK_METHOD(void, setConnectionID, (uint64_t));
161
  MOCK_METHOD(void, setAttemptCount, (uint32_t), ());
162
  MOCK_METHOD(absl::optional<uint32_t>, attemptCount, (), (const));
163
  MOCK_METHOD(const BytesMeterSharedPtr&, getUpstreamBytesMeter, (), (const));
164
  MOCK_METHOD(const BytesMeterSharedPtr&, getDownstreamBytesMeter, (), (const));
165
  MOCK_METHOD(void, setUpstreamBytesMeter, (const BytesMeterSharedPtr&));
166
  MOCK_METHOD(void, setDownstreamBytesMeter, (const BytesMeterSharedPtr&));
167
  MOCK_METHOD(void, dumpState, (std::ostream & os, int indent_level), (const));
168
  MOCK_METHOD(bool, isShadow, (), (const, override));
169
  MOCK_METHOD(void, setDownstreamTransportFailureReason, (absl::string_view failure_reason));
170
  MOCK_METHOD(absl::string_view, downstreamTransportFailureReason, (), (const));
171
  MOCK_METHOD(bool, shouldSchemeMatchUpstream, (), (const));
172
  MOCK_METHOD(void, setShouldSchemeMatchUpstream, (bool));
173
  MOCK_METHOD(bool, shouldDrainConnectionUponCompletion, (), (const));
174
  MOCK_METHOD(void, setShouldDrainConnectionUponCompletion, (bool));
175
  MOCK_METHOD(void, setParentStreamInfo, (const StreamInfo&), ());
176
  MOCK_METHOD(void, clearParentStreamInfo, ());
177
  MOCK_METHOD(OptRef<const StreamInfo>, parentStreamInfo, (), (const));
178
179
  Envoy::Event::SimulatedTimeSystem ts_;
180
  SystemTime start_time_;
181
  MonotonicTime start_time_monotonic_;
182
  absl::optional<std::chrono::nanoseconds> end_time_;
183
  absl::optional<Http::Protocol> protocol_;
184
  absl::optional<uint32_t> response_code_;
185
  absl::optional<std::string> response_code_details_;
186
  absl::optional<std::string> connection_termination_details_;
187
  absl::optional<Upstream::ClusterInfoConstSharedPtr> upstream_cluster_info_;
188
  std::shared_ptr<UpstreamInfo> upstream_info_;
189
  absl::InlinedVector<ResponseFlag, 4> response_flags_{};
190
  envoy::config::core::v3::Metadata metadata_;
191
  FilterStateSharedPtr filter_state_;
192
  uint64_t bytes_received_{};
193
  uint64_t bytes_sent_{};
194
  std::shared_ptr<Network::ConnectionInfoSetterImpl> downstream_connection_info_provider_;
195
  BytesMeterSharedPtr upstream_bytes_meter_;
196
  BytesMeterSharedPtr downstream_bytes_meter_;
197
  Ssl::ConnectionInfoConstSharedPtr downstream_connection_info_;
198
  std::string route_name_;
199
  absl::optional<uint32_t> attempt_count_;
200
  absl::optional<std::string> virtual_cluster_name_;
201
  DownstreamTiming downstream_timing_;
202
  std::string downstream_transport_failure_reason_;
203
};
204
205
} // namespace StreamInfo
206
} // namespace Envoy