/
mock_reporter.go
43 lines (33 loc) · 1.23 KB
/
mock_reporter.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package transport // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/statsdreceiver/transport"
import (
"context"
"sync"
)
// MockReporter provides a Reporter that provides some useful functionalities for
// tests (eg.: wait for certain number of messages).
type MockReporter struct {
wgMetricsProcessed sync.WaitGroup
}
var _ Reporter = (*MockReporter)(nil)
// NewMockReporter returns a new instance of a MockReporter.
func NewMockReporter(expectedOnMetricsProcessedCalls int) *MockReporter {
m := MockReporter{}
m.wgMetricsProcessed.Add(expectedOnMetricsProcessedCalls)
return &m
}
func (m *MockReporter) OnDataReceived(ctx context.Context) context.Context {
return ctx
}
func (m *MockReporter) OnTranslationError(_ context.Context, _ error) {}
func (m *MockReporter) OnMetricsProcessed(_ context.Context, _ int, _ error) {
m.wgMetricsProcessed.Done()
}
func (m *MockReporter) OnDebugf(_ string, _ ...interface{}) {
}
// WaitAllOnMetricsProcessedCalls blocks until the number of expected calls
// specified at creation of the reporter is completed.
func (m *MockReporter) WaitAllOnMetricsProcessedCalls() {
m.wgMetricsProcessed.Wait()
}