Coverage Report

Created: 2024-09-19 09:45

/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(absl::Status, initialize, (const envoy::config::bootstrap::v3::Bootstrap& bootstrap));
39
  MOCK_METHOD(bool, initialized, ());
40
  MOCK_METHOD(bool, addOrUpdateCluster,
41
              (const envoy::config::cluster::v3::Cluster& cluster,
42
               const std::string& version_info));
43
  MOCK_METHOD(void, setPrimaryClustersInitializedCb, (PrimaryClustersReadyCallback));
44
  MOCK_METHOD(void, setInitializedCb, (InitializationCompleteCallback));
45
  MOCK_METHOD(absl::Status, initializeSecondaryClusters,
46
              (const envoy::config::bootstrap::v3::Bootstrap& bootstrap));
47
  MOCK_METHOD(ClusterInfoMaps, clusters, (), (const));
48
49
  MOCK_METHOD(const ClusterSet&, primaryClusters, ());
50
  MOCK_METHOD(ThreadLocalCluster*, getThreadLocalCluster, (absl::string_view cluster));
51
  MOCK_METHOD(bool, removeCluster, (const std::string& cluster));
52
  MOCK_METHOD(void, shutdown, ());
53
  MOCK_METHOD(bool, isShutdown, ());
54
  MOCK_METHOD(const absl::optional<envoy::config::core::v3::BindConfig>&, bindConfig, (), (const));
55
  MOCK_METHOD(Config::GrpcMuxSharedPtr, adsMux, ());
56
  MOCK_METHOD(Grpc::AsyncClientManager&, grpcAsyncClientManager, ());
57
  MOCK_METHOD(const std::string, versionInfo, (), (const));
58
  MOCK_METHOD(const absl::optional<std::string>&, localClusterName, (), (const));
59
  MOCK_METHOD(ClusterUpdateCallbacksHandle*, addThreadLocalClusterUpdateCallbacks_,
60
              (ClusterUpdateCallbacks & callbacks));
61
  MOCK_METHOD(Config::SubscriptionFactory&, subscriptionFactory, ());
62
0
  const ClusterTrafficStatNames& clusterStatNames() const override { return cluster_stat_names_; }
63
0
  const ClusterConfigUpdateStatNames& clusterConfigUpdateStatNames() const override {
64
0
    return cluster_config_update_stat_names_;
65
0
  }
66
0
  const ClusterEndpointStatNames& clusterEndpointStatNames() const override {
67
0
    return cluster_endpoint_stat_names_;
68
0
  }
69
0
  const ClusterLbStatNames& clusterLbStatNames() const override { return cluster_lb_stat_names_; }
70
0
  const ClusterLoadReportStatNames& clusterLoadReportStatNames() const override {
71
0
    return cluster_load_report_stat_names_;
72
0
  }
73
0
  const ClusterCircuitBreakersStatNames& clusterCircuitBreakersStatNames() const override {
74
0
    return cluster_circuit_breakers_stat_names_;
75
0
  }
76
0
  const ClusterRequestResponseSizeStatNames& clusterRequestResponseSizeStatNames() const override {
77
0
    return cluster_request_response_size_stat_names_;
78
0
  }
79
0
  const ClusterTimeoutBudgetStatNames& clusterTimeoutBudgetStatNames() const override {
80
0
    return cluster_timeout_budget_stat_names_;
81
0
  }
82
  MOCK_METHOD(void, drainConnections,
83
              (const std::string& cluster, DrainConnectionsHostPredicate predicate));
84
  MOCK_METHOD(void, drainConnections, (DrainConnectionsHostPredicate predicate));
85
  MOCK_METHOD(absl::Status, checkActiveStaticCluster, (const std::string& cluster));
86
  MOCK_METHOD(OdCdsApiHandlePtr, allocateOdCdsApi,
87
              (const envoy::config::core::v3::ConfigSource& odcds_config,
88
               OptRef<xds::core::v3::ResourceLocator> odcds_resources_locator,
89
               ProtobufMessage::ValidationVisitor& validation_visitor));
90
  std::shared_ptr<const envoy::config::cluster::v3::Cluster::CommonLbConfig> getCommonLbConfigPtr(
91
0
      const envoy::config::cluster::v3::Cluster::CommonLbConfig& common_lb_config) override {
92
0
    return std::make_shared<const envoy::config::cluster::v3::Cluster::CommonLbConfig>(
93
0
        common_lb_config);
94
0
  }
95
96
  MOCK_METHOD(Config::EdsResourcesCacheOptRef, edsResourcesCache, ());
97
  MOCK_METHOD(void, createNetworkObserverRegistries,
98
              (Quic::EnvoyQuicNetworkObserverRegistryFactory&));
99
100
  envoy::config::core::v3::BindConfig& mutableBindConfig();
101
102
  NiceMock<MockThreadLocalCluster> thread_local_cluster_;
103
  absl::optional<envoy::config::core::v3::BindConfig> bind_config_;
104
  std::shared_ptr<NiceMock<Config::MockGrpcMux>> ads_mux_;
105
  NiceMock<Grpc::MockAsyncClientManager> async_client_manager_;
106
  absl::optional<std::string> local_cluster_name_;
107
  NiceMock<MockClusterManagerFactory> cluster_manager_factory_;
108
  NiceMock<Config::MockSubscriptionFactory> subscription_factory_;
109
  absl::flat_hash_map<std::string, std::unique_ptr<MockCluster>> active_clusters_;
110
  absl::flat_hash_map<std::string, std::unique_ptr<MockCluster>> warming_clusters_;
111
  Stats::TestUtil::TestSymbolTable symbol_table_;
112
  ClusterTrafficStatNames cluster_stat_names_;
113
  ClusterConfigUpdateStatNames cluster_config_update_stat_names_;
114
  ClusterLbStatNames cluster_lb_stat_names_;
115
  ClusterEndpointStatNames cluster_endpoint_stat_names_;
116
  ClusterLoadReportStatNames cluster_load_report_stat_names_;
117
  ClusterCircuitBreakersStatNames cluster_circuit_breakers_stat_names_;
118
  ClusterRequestResponseSizeStatNames cluster_request_response_size_stat_names_;
119
  ClusterTimeoutBudgetStatNames cluster_timeout_budget_stat_names_;
120
};
121
} // namespace Upstream
122
} // namespace Envoy