diff --git a/pkg/collector/fake_collector_test.go b/pkg/collector/fake_collector_test.go new file mode 100644 index 00000000..1077c6ca --- /dev/null +++ b/pkg/collector/fake_collector_test.go @@ -0,0 +1,57 @@ +package collector + +import ( + "time" + + autoscalingv2 "k8s.io/api/autoscaling/v2beta2" + "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/metrics/pkg/apis/custom_metrics" +) + +type FakeCollectorPlugin struct { + metrics []CollectedMetric + config map[string]string +} + +type FakeCollector struct { + metrics []CollectedMetric + interval time.Duration + stub func() ([]CollectedMetric, error) +} + +func (c *FakeCollector) GetMetrics() ([]CollectedMetric, error) { + if c.stub != nil { + v, err := c.stub() + return v, err + } + + return c.metrics, nil +} + +func (FakeCollector) Interval() time.Duration { + return time.Minute +} + +func (p *FakeCollectorPlugin) NewCollector( + hpa *autoscalingv2.HorizontalPodAutoscaler, + config *MetricConfig, + interval time.Duration, +) (Collector, error) { + + p.config = config.Config + return &FakeCollector{metrics: p.metrics, interval: interval}, nil +} + +func makePlugin(metric int) *FakeCollectorPlugin { + return &FakeCollectorPlugin{ + metrics: []CollectedMetric{ + { + Custom: custom_metrics.MetricValue{Value: *resource.NewQuantity(int64(metric), resource.DecimalSI)}, + }, + }, + } +} + +func makeCollectorWithStub(f func() ([]CollectedMetric, error)) *FakeCollector { + return &FakeCollector{stub: f} +} diff --git a/pkg/collector/skipper_collector_test.go b/pkg/collector/skipper_collector_test.go index cbe31462..46f2097f 100644 --- a/pkg/collector/skipper_collector_test.go +++ b/pkg/collector/skipper_collector_test.go @@ -658,38 +658,3 @@ func makeConfig(resourceName, namespace, kind, backend string, fakedAverage bool } return config } - -type FakeCollectorPlugin struct { - metrics []CollectedMetric - config map[string]string -} - -type FakeCollector struct { - metrics []CollectedMetric -} - -func (c *FakeCollector) GetMetrics() ([]CollectedMetric, error) { - return c.metrics, nil -} - -func (FakeCollector) Interval() time.Duration { - return time.Minute -} - -func (p *FakeCollectorPlugin) NewCollector(hpa *autoscalingv2.HorizontalPodAutoscaler, config *MetricConfig, interval time.Duration) (Collector, error) { - if p.config != nil { - return nil, fmt.Errorf("config already assigned once: %v", p.config) - } - p.config = config.Config - return &FakeCollector{metrics: p.metrics}, nil -} - -func makePlugin(metric int) *FakeCollectorPlugin { - return &FakeCollectorPlugin{ - metrics: []CollectedMetric{ - { - Custom: custom_metrics.MetricValue{Value: *resource.NewQuantity(int64(metric), resource.DecimalSI)}, - }, - }, - } -}