1 Star 0 Fork 2

yanyue / cloudbases.io.kiali

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
mock.go 7.57 KB
一键复制 编辑 原始数据 按行查看 历史
Hubery1003 提交于 2021-12-16 10:12 . first commit
package prometheustest
import (
"context"
"time"
"github.com/kiali/kiali/prometheus"
"github.com/prometheus/client_golang/api/prometheus/v1"
"github.com/prometheus/common/model"
"github.com/stretchr/testify/mock"
)
// PromAPIMock for mocking Prometheus API
type PromAPIMock struct {
mock.Mock
}
func (o *PromAPIMock) AlertManagers(ctx context.Context) (v1.AlertManagersResult, error) {
args := o.Called(ctx)
return args.Get(0).(v1.AlertManagersResult), args.Error(1)
}
func (o *PromAPIMock) CleanTombstones(ctx context.Context) error {
args := o.Called(ctx)
return args.Error(0)
}
func (o *PromAPIMock) Config(ctx context.Context) (v1.ConfigResult, error) {
args := o.Called(ctx)
return args.Get(0).(v1.ConfigResult), args.Error(1)
}
func (o *PromAPIMock) DeleteSeries(ctx context.Context, matches []string, startTime time.Time, endTime time.Time) error {
args := o.Called(ctx, matches, startTime, endTime)
return args.Error(0)
}
func (o *PromAPIMock) Flags(ctx context.Context) (v1.FlagsResult, error) {
args := o.Called(ctx)
return args.Get(0).(v1.FlagsResult), args.Error(1)
}
func (o *PromAPIMock) LabelValues(ctx context.Context, label string) (model.LabelValues, error) {
args := o.Called(ctx, label)
return args.Get(0).(model.LabelValues), args.Error(1)
}
func (o *PromAPIMock) Query(ctx context.Context, query string, ts time.Time) (model.Value, error) {
args := o.Called(ctx, query, ts)
return args.Get(0).(model.Value), args.Error(1)
}
func (o *PromAPIMock) QueryRange(ctx context.Context, query string, r v1.Range) (model.Value, error) {
args := o.Called(ctx, query, r)
return args.Get(0).(model.Value), args.Error(1)
}
func (o *PromAPIMock) Series(ctx context.Context, matches []string, startTime time.Time, endTime time.Time) ([]model.LabelSet, error) {
args := o.Called(ctx, matches, startTime, endTime)
return args.Get(0).([]model.LabelSet), args.Error(1)
}
func (o *PromAPIMock) Snapshot(ctx context.Context, skipHead bool) (v1.SnapshotResult, error) {
args := o.Called(ctx, skipHead)
return args.Get(0).(v1.SnapshotResult), args.Error(1)
}
func (o *PromAPIMock) Targets(ctx context.Context) (v1.TargetsResult, error) {
args := o.Called(ctx)
return args.Get(0).(v1.TargetsResult), args.Error(1)
}
// AlwaysReturnEmpty mocks all possible queries to return empty result
func (o *PromAPIMock) AlwaysReturnEmpty() {
metric := model.Metric{
"__name__": "whatever",
"instance": "whatever",
"job": "whatever"}
o.On(
"Query",
mock.AnythingOfType("*context.emptyCtx"),
mock.AnythingOfType("string"),
mock.AnythingOfType("time.Time"),
).Return(model.Vector{}, nil)
matrix := model.Matrix{
&model.SampleStream{
Metric: metric,
Values: []model.SamplePair{}}}
o.On(
"QueryRange",
mock.AnythingOfType("*context.emptyCtx"),
mock.AnythingOfType("string"),
mock.AnythingOfType("v1.Range"),
).Return(matrix, nil)
}
// SpyArgumentsAndReturnEmpty mocks all possible queries to return empty result,
// allowing to spy arguments through input callback
func (o *PromAPIMock) SpyArgumentsAndReturnEmpty(fn func(args mock.Arguments)) {
metric := model.Metric{
"__name__": "whatever",
"instance": "whatever",
"job": "whatever"}
o.On(
"Query",
mock.AnythingOfType("*context.emptyCtx"),
mock.AnythingOfType("string"),
mock.AnythingOfType("time.Time"),
).Run(fn).Return(model.Vector{}, nil)
matrix := model.Matrix{
&model.SampleStream{
Metric: metric,
Values: []model.SamplePair{}}}
o.On(
"QueryRange",
mock.AnythingOfType("*context.emptyCtx"),
mock.AnythingOfType("string"),
mock.AnythingOfType("v1.Range"),
).Run(fn).Return(matrix, nil)
}
type PromClientMock struct {
mock.Mock
}
// MockAppRequestRates mocks GetAppRequestRates for given namespace and app, returning in & out vectors
func (o *PromClientMock) MockAppRequestRates(namespace, app string, in, out model.Vector) {
o.On("GetAppRequestRates", namespace, app, mock.AnythingOfType("string"), mock.AnythingOfType("time.Time")).Return(in, out, nil)
}
// MockServiceRequestRates mocks GetServiceRequestRates for given namespace and service, returning in vector
func (o *PromClientMock) MockServiceRequestRates(namespace, service string, in model.Vector) {
o.On("GetServiceRequestRates", namespace, service, mock.AnythingOfType("string"), mock.AnythingOfType("time.Time")).Return(in, nil)
}
// MockWorkloadRequestRates mocks GetWorkloadRequestRates for given namespace and workload, returning in & out vectors
func (o *PromClientMock) MockWorkloadRequestRates(namespace, wkld string, in, out model.Vector) {
o.On("GetWorkloadRequestRates", namespace, wkld, mock.AnythingOfType("string"), mock.AnythingOfType("time.Time")).Return(in, out, nil)
}
func (o *PromClientMock) GetAllRequestRates(namespace, ratesInterval string, queryTime time.Time) (model.Vector, error) {
args := o.Called(namespace, ratesInterval, queryTime)
return args.Get(0).(model.Vector), args.Error(1)
}
func (o *PromClientMock) GetConfiguration() (v1.ConfigResult, error) {
args := o.Called()
return args.Get(0).(v1.ConfigResult), args.Error(1)
}
func (o *PromClientMock) GetFlags() (v1.FlagsResult, error) {
args := o.Called()
return args.Get(0).(v1.FlagsResult), args.Error(1)
}
func (o *PromClientMock) GetNamespaceServicesRequestRates(namespace, ratesInterval string, queryTime time.Time) (model.Vector, error) {
args := o.Called(namespace, ratesInterval, queryTime)
return args.Get(0).(model.Vector), args.Error(1)
}
func (o *PromClientMock) GetAppRequestRates(namespace, app, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error) {
args := o.Called(namespace, app, ratesInterval, queryTime)
return args.Get(0).(model.Vector), args.Get(1).(model.Vector), args.Error(2)
}
func (o *PromClientMock) GetServiceRequestRates(namespace, service, ratesInterval string, queryTime time.Time) (model.Vector, error) {
args := o.Called(namespace, service, ratesInterval, queryTime)
return args.Get(0).(model.Vector), args.Error(1)
}
func (o *PromClientMock) GetWorkloadRequestRates(namespace, workload, ratesInterval string, queryTime time.Time) (model.Vector, model.Vector, error) {
args := o.Called(namespace, workload, ratesInterval, queryTime)
return args.Get(0).(model.Vector), args.Get(1).(model.Vector), args.Error(2)
}
func (o *PromClientMock) GetSourceWorkloads(namespace string, namespaceCreationTime time.Time, servicename string) (map[string][]prometheus.Workload, error) {
args := o.Called(namespace, namespaceCreationTime, servicename)
return args.Get(0).(map[string][]prometheus.Workload), args.Error(1)
}
func (o *PromClientMock) GetDestinationServices(namespace string, namespaceCreationTime time.Time, workloadname string) ([]prometheus.Service, error) {
args := o.Called(namespace, namespaceCreationTime, workloadname)
return args.Get(0).([]prometheus.Service), args.Error(1)
}
func (o *PromClientMock) FetchRange(metricName, labels, grouping, aggregator string, q *prometheus.BaseMetricsQuery) *prometheus.Metric {
args := o.Called(metricName, labels, grouping, aggregator, q)
return args.Get(0).(*prometheus.Metric)
}
func (o *PromClientMock) FetchRateRange(metricName, labels, grouping string, q *prometheus.BaseMetricsQuery) *prometheus.Metric {
args := o.Called(metricName, labels, grouping, q)
return args.Get(0).(*prometheus.Metric)
}
func (o *PromClientMock) FetchHistogramRange(metricName, labels, grouping string, q *prometheus.BaseMetricsQuery) prometheus.Histogram {
args := o.Called(metricName, labels, grouping, q)
return args.Get(0).(prometheus.Histogram)
}
func (o *PromClientMock) GetMetrics(query *prometheus.IstioMetricsQuery) prometheus.Metrics {
args := o.Called(query)
return args.Get(0).(prometheus.Metrics)
}
1
https://gitee.com/programmer-zpz/cloudbases.io.kiali.git
git@gitee.com:programmer-zpz/cloudbases.io.kiali.git
programmer-zpz
cloudbases.io.kiali
cloudbases.io.kiali
v0.15.1

搜索帮助

53164aa7 5694891 3bd8fe86 5694891