influxdb/pkg/metrics/registry_test.go

64 lines
1.6 KiB
Go

package metrics
import (
"testing"
"github.com/influxdata/platform/pkg/testing/assert"
)
func TestRegistry_MustRegisterCounter(t *testing.T) {
r := NewRegistry()
id := r.MustRegisterCounter("counter")
assert.Equal(t, id, ID(0), "invalid id")
}
func TestRegistry_MustRegisterCounter_Panics(t *testing.T) {
r := NewRegistry()
r.MustRegisterCounter("counter")
assert.PanicsWithValue(t, "metric name 'counter' already in use", func() {
r.MustRegisterCounter("counter")
})
}
func TestRegistry_NewGroup_CounterIsZero(t *testing.T) {
r := NewRegistry()
id := r.MustRegisterCounter("counter")
c := r.NewGroup(DefaultGroup).GetCounter(id)
c.Add(1)
assert.Equal(t, int64(1), c.Value())
c = r.NewGroup(DefaultGroup).GetCounter(id)
assert.Equal(t, int64(0), c.Value())
}
func TestRegistry_MustRegisterTimer(t *testing.T) {
r := NewRegistry()
id := r.MustRegisterTimer("timer")
assert.Equal(t, ID(0), id, "invalid id")
}
func TestRegistry_MustRegisterTimer_Panics(t *testing.T) {
r := NewRegistry()
r.MustRegisterCounter("timer")
assert.PanicsWithValue(t, "metric name 'timer' already in use", func() {
r.MustRegisterCounter("timer")
})
}
func TestRegistry_MustRegisterMultiple(t *testing.T) {
r := NewRegistry()
cnt := r.MustRegisterCounter("counter")
tmr := r.MustRegisterTimer("timer")
assert.Equal(t, ID(0), cnt, "invalid id")
assert.Equal(t, ID(0), tmr, "invalid id")
}
func TestRegistry_MustRegister_Panics_Across_Measurements(t *testing.T) {
r := NewRegistry()
r.MustRegisterCounter("foo")
assert.PanicsWithValue(t, "metric name 'foo' already in use", func() {
r.MustRegisterCounter("foo")
})
}