Coverage Report

Created: 2023-11-12 09:30

/proc/self/cwd/test/mocks/upstream/cluster_manager.h
Line
Count
Source (jump to first uncovered line)
1
#pragma once
2
3
#include "envoy/upstream/cluster_manager.h"
4
5
#include "test/mocks/config/mocks.h"
6
#include "test/mocks/grpc/mocks.h"
7
#include "test/mocks/http/mocks.h"
8
#include "test/mocks/tcp/mocks.h"
9
10
#include "cluster_manager_factory.h"
11
#include "gmock/gmock.h"
12
#include "gtest/gtest.h"
13
#include "od_cds_api_handle.h"
14
#include "thread_local_cluster.h"
15
16
namespace Envoy {
17
namespace Upstream {
18
using ::testing::NiceMock;
19
class MockClusterManager : public ClusterManager {
20
public:
21
  explicit MockClusterManager(TimeSource& time_source);
22
  MockClusterManager();
23
  ~MockClusterManager() override;
24
25
  ClusterUpdateCallbacksHandlePtr
26
0
  addThreadLocalClusterUpdateCallbacks(ClusterUpdateCallbacks& callbacks) override {
27
0
    return ClusterUpdateCallbacksHandlePtr{addThreadLocalClusterUpdateCallbacks_(callbacks)};
28
0
  }
29
30
0
  ClusterManagerFactory& clusterManagerFactory() override { return cluster_manager_factory_; }
31
32
  void initializeClusters(const std::vector<std::string>& active_cluster_names,
33
                          const std::vector<std::string>& warming_cluster_names);
34
35
  void initializeThreadLocalClusters(const std::vector<std::string>& cluster_names);
36
37
  // Upstream::ClusterManager
38
  MOCK_METHOD(bool, addOrUpdateCluster,
39
              (const envoy::config::cluster::v3::Cluster& cluster,
40
               const std::string& version_info));
41
  MOCK_METHOD(void, setPrimaryClustersInitializedCb, (PrimaryClustersReadyCallback));
42
  MOCK_METHOD(void, setInitializedCb, (InitializationCompleteCallback));
43
  MOCK_METHOD(void, initializeSecondaryClusters,
44
              (const envoy::config::bootstrap::v3::Bootstrap& bootstrap));
45
  MOCK_METHOD(ClusterInfoMaps, clusters, (), (const));
46
47
  MOCK_METHOD(const ClusterSet&, primaryClusters, ());
48
  MOCK_METHOD(ThreadLocalCluster*, getThreadLocalCluster, (absl::string_view cluster));
49
  MOCK_METHOD(bool, removeCluster, (const std::string& cluster));
50
  MOCK_METHOD(void, shutdown, ());
51
  MOCK_METHOD(bool, isShutdown, ());
52
  MOCK_METHOD(const absl::optional<envoy::config::core::v3::BindConfig>&, bindConfig, (), (const));
53
  MOCK_METHOD(Config::GrpcMuxSharedPtr, adsMux, ());
54
  MOCK_METHOD(Grpc::AsyncClientManager&, grpcAsyncClientManager, ());
55
  MOCK_METHOD(const std::string, versionInfo, (), (const));
56
  MOCK_METHOD(const absl::optional<std::string>&, localClusterName, (), (const));
57
  MOCK_METHOD(ClusterUpdateCallbacksHandle*, addThreadLocalClusterUpdateCallbacks_,
58
              (ClusterUpdateCallbacks & callbacks));
59
  MOCK_METHOD(Config::SubscriptionFactory&, subscriptionFactory, ());
60
0
  const ClusterTrafficStatNames& clusterStatNames() const override { return cluster_stat_names_; }
61
0
  const ClusterConfigUpdateStatNames& clusterConfigUpdateStatNames() const override {
62
0
    return cluster_config_update_stat_names_;
63
0
  }
64
0
  const ClusterEndpointStatNames& clusterEndpointStatNames() const override {
65
0
    return cluster_endpoint_stat_names_;
66
0
  }
67
0
  const ClusterLbStatNames& clusterLbStatNames() const override { return cluster_lb_stat_names_; }
68
0
  const ClusterLoadReportStatNames& clusterLoadReportStatNames() const override {
69
0
    return cluster_load_report_stat_names_;
70
0
  }
71
0
  const ClusterCircuitBreakersStatNames& clusterCircuitBreakersStatNames() const override {
72
0
    return cluster_circuit_breakers_stat_names_;
73
0
  }
74
0
  const ClusterRequestResponseSizeStatNames& clusterRequestResponseSizeStatNames() const override {
75
0
    return cluster_request_response_size_stat_names_;
76
0
  }
77
0
  const ClusterTimeoutBudgetStatNames& clusterTimeoutBudgetStatNames() const override {
78
0
    return cluster_timeout_budget_stat_names_;
79
0
  }
80
  MOCK_METHOD(void, drainConnections,
81
              (const std::string& cluster, DrainConnectionsHostPredicate predicate));
82
  MOCK_METHOD(void, drainConnections, (DrainConnectionsHostPredicate predicate));
83
  MOCK_METHOD(void, checkActiveStaticCluster, (const std::string& cluster));
84
  MOCK_METHOD(OdCdsApiHandlePtr, allocateOdCdsApi,
85
              (const envoy::config::core::v3::ConfigSource& odcds_config,
86
               OptRef<xds::core::v3::ResourceLocator> odcds_resources_locator,
87
               ProtobufMessage::ValidationVisitor& validation_visitor));
88
  std::shared_ptr<const envoy::config::cluster::v3::Cluster::CommonLbConfig> getCommonLbConfigPtr(
89
0
      const envoy::config::cluster::v3::Cluster::CommonLbConfig& common_lb_config) override {
90
0
    return std::make_shared<const envoy::config::cluster::v3::Cluster::CommonLbConfig>(
91
0
        common_lb_config);
92
0
  }
93
94
  MOCK_METHOD(Config::EdsResourcesCacheOptRef, edsResourcesCache, ());
95
96
  envoy::config::core::v3::BindConfig& mutableBindConfig();
97
98
  NiceMock<MockThreadLocalCluster> thread_local_cluster_;
99
  absl::optional<envoy::config::core::v3::BindConfig> bind_config_;
100
  std::shared_ptr<NiceMock<Config::MockGrpcMux>> ads_mux_;
101
  NiceMock<Grpc::MockAsyncClientManager> async_client_manager_;
102
  absl::optional<std::string> local_cluster_name_;
103
  NiceMock<MockClusterManagerFactory> cluster_manager_factory_;
104
  NiceMock<Config::MockSubscriptionFactory> subscription_factory_;
105
  absl::flat_hash_map<std::string, std::unique_ptr<MockCluster>> active_clusters_;
106
  absl::flat_hash_map<std::string, std::unique_ptr<MockCluster>> warming_clusters_;
107
  Stats::TestUtil::TestSymbolTable symbol_table_;
108
  ClusterTrafficStatNames cluster_stat_names_;
109
  ClusterConfigUpdateStatNames cluster_config_update_stat_names_;
110
  ClusterLbStatNames cluster_lb_stat_names_;
111
  ClusterEndpointStatNames cluster_endpoint_stat_names_;
112
  ClusterLoadReportStatNames cluster_load_report_stat_names_;
113
  ClusterCircuitBreakersStatNames cluster_circuit_breakers_stat_names_;
114
  ClusterRequestResponseSizeStatNames cluster_request_response_size_stat_names_;
115
  ClusterTimeoutBudgetStatNames cluster_timeout_budget_stat_names_;
116
};
117
} // namespace Upstream
118
} // namespace Envoy