MCPcopy Create free account
hub / github.com/Shopify/goose / TestTimer_StartTimer

Function TestTimer_StartTimer

statsd/timer_test.go:13–50  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

11)
12
13func TestTimer_StartTimer(t *testing.T) {
14 defer func() { SetBackend(NewNullBackend()) }()
15
16 ctx := WithTags(context.Background(), Tags{"context": "ok"})
17
18 statsd := new(mocks.Backend)
19 SetBackend(statsd)
20 metric := &Timer{Name: "metric"}
21
22 t.Run("Finish", func(t *testing.T) {
23 statsd.On("Distribution", ctx, "metric", mock.Anything, []string{"context:ok", "finish:ok", "starttimer:ok"}, 1.0).Return(nil).Once()
24
25 start := metric.StartTimer(ctx, Tags{"starttimer": "ok"})
26 start.Finish(Tags{"finish": "ok"})
27
28 statsd.AssertExpectations(t)
29 })
30
31 t.Run("SuccessFinish", func(t *testing.T) {
32 statsd.On("Distribution", ctx, "metric", mock.Anything, []string{"context:ok", "starttimer:ok", "success:false", "successfinish:ok"}, 1.0).Return(nil).Once()
33
34 err := io.EOF
35 start := metric.StartTimer(ctx, Tags{"starttimer": "ok"})
36 start.SuccessFinish(&err, Tags{"successfinish": "ok"})
37
38 statsd.AssertExpectations(t)
39 })
40
41 t.Run("SetTags", func(t *testing.T) {
42 statsd.On("Distribution", ctx, "metric", mock.Anything, []string{"context:ok", "settags:ok", "starttimer:ok"}, 1.0).Return(nil).Once()
43
44 start := metric.StartTimer(ctx, Tags{"starttimer": "ok"})
45 start.SetTags(Tags{"settags": "ok"})
46 start.Finish()
47
48 statsd.AssertExpectations(t)
49 })
50}

Callers

nothing calls this directly

Calls 8

StartTimerMethod · 0.95
SetBackendFunction · 0.85
NewNullBackendFunction · 0.85
WithTagsFunction · 0.85
RunMethod · 0.65
FinishMethod · 0.65
SuccessFinishMethod · 0.65
SetTagsMethod · 0.65

Tested by

no test coverage detected