Coverage Report

Created: 2024-09-19 09:45

/proc/self/cwd/test/mocks/tcp/mocks.cc
Line
Count
Source (jump to first uncovered line)
1
#include "mocks.h"
2
3
#include "gmock/gmock.h"
4
5
using testing::Return;
6
using testing::ReturnRef;
7
8
using testing::_;
9
using testing::Invoke;
10
using testing::ReturnRef;
11
using testing::SaveArg;
12
13
namespace Envoy {
14
namespace Tcp {
15
namespace ConnectionPool {
16
17
0
MockUpstreamCallbacks::MockUpstreamCallbacks() = default;
18
0
MockUpstreamCallbacks::~MockUpstreamCallbacks() = default;
19
20
36.7k
MockConnectionData::MockConnectionData() = default;
21
36.7k
MockConnectionData::~MockConnectionData() {
22
36.7k
  if (release_callback_) {
23
0
    release_callback_();
24
0
  }
25
36.7k
}
26
27
36.7k
MockInstance::MockInstance() {
28
36.7k
  ON_CALL(*this, newConnection(_)).WillByDefault(Invoke([&](Callbacks& cb) -> Cancellable* {
29
0
    return newConnectionImpl(cb);
30
0
  }));
31
36.7k
  ON_CALL(*this, host()).WillByDefault(Return(host_));
32
36.7k
  ON_CALL(*this, addIdleCallback(_)).WillByDefault(SaveArg<0>(&idle_cb_));
33
36.7k
}
34
36.7k
MockInstance::~MockInstance() = default;
35
36
0
Envoy::ConnectionPool::MockCancellable* MockInstance::newConnectionImpl(Callbacks& cb) {
37
0
  handles_.emplace_back();
38
0
  callbacks_.push_back(&cb);
39
0
  return &handles_.back();
40
0
}
41
42
0
void MockInstance::poolFailure(PoolFailureReason reason, bool host_null) {
43
0
  Callbacks* cb = callbacks_.front();
44
0
  callbacks_.pop_front();
45
0
  handles_.pop_front();
46
0
  if (host_null) {
47
0
    cb->onPoolFailure(reason, "", nullptr);
48
0
  } else {
49
0
    cb->onPoolFailure(reason, "", host_);
50
0
  }
51
0
}
52
53
0
void MockInstance::poolReady(Network::MockClientConnection& conn) {
54
0
  Callbacks* cb = callbacks_.front();
55
0
  callbacks_.pop_front();
56
0
  handles_.pop_front();
57
58
0
  ON_CALL(*connection_data_, connection()).WillByDefault(ReturnRef(conn));
59
60
0
  connection_data_->release_callback_ = [&]() -> void { released(conn); };
61
62
0
  cb->onPoolReady(std::move(connection_data_), host_);
63
64
0
  connection_data_ = std::make_unique<NiceMock<MockConnectionData>>();
65
0
}
66
67
} // namespace ConnectionPool
68
} // namespace Tcp
69
} // namespace Envoy