Skip to content

Commit

Permalink
Extract fake controller to use it in other tests
Browse files Browse the repository at this point in the history
Signed-off-by: Lucas Thiesen <[email protected]>
  • Loading branch information
lucastt committed May 2, 2023
1 parent 6c07869 commit 92f6252
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 35 deletions.
57 changes: 57 additions & 0 deletions pkg/collector/fake_collector_test.go
Original file line number Diff line number Diff line change
@@ -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}
}
35 changes: 0 additions & 35 deletions pkg/collector/skipper_collector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)},
},
},
}
}

0 comments on commit 92f6252

Please sign in to comment.