mirror of
https://github.com/mainflux/mainflux.git
synced 2025-05-06 19:29:15 +08:00

Setup top-level glide dependencies file. Migrated all of the manager service code into this repository. Fixed docker build procedure. Extracted executable to the top-level. Signed-off-by: Dejan Mijic <dejan@mainflux.com>
97 lines
2.1 KiB
Go
97 lines
2.1 KiB
Go
package multi
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/go-kit/kit/metrics"
|
|
)
|
|
|
|
func TestMultiCounter(t *testing.T) {
|
|
c1 := &mockCounter{}
|
|
c2 := &mockCounter{}
|
|
c3 := &mockCounter{}
|
|
mc := NewCounter(c1, c2, c3)
|
|
|
|
mc.Add(123)
|
|
mc.Add(456)
|
|
|
|
want := "[123 456]"
|
|
for i, m := range []fmt.Stringer{c1, c2, c3} {
|
|
if have := m.String(); want != have {
|
|
t.Errorf("c%d: want %q, have %q", i+1, want, have)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestMultiGauge(t *testing.T) {
|
|
g1 := &mockGauge{}
|
|
g2 := &mockGauge{}
|
|
g3 := &mockGauge{}
|
|
mg := NewGauge(g1, g2, g3)
|
|
|
|
mg.Set(9)
|
|
mg.Set(8)
|
|
mg.Set(7)
|
|
mg.Add(3)
|
|
|
|
want := "[9 8 7 10]"
|
|
for i, m := range []fmt.Stringer{g1, g2, g3} {
|
|
if have := m.String(); want != have {
|
|
t.Errorf("g%d: want %q, have %q", i+1, want, have)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestMultiHistogram(t *testing.T) {
|
|
h1 := &mockHistogram{}
|
|
h2 := &mockHistogram{}
|
|
h3 := &mockHistogram{}
|
|
mh := NewHistogram(h1, h2, h3)
|
|
|
|
mh.Observe(1)
|
|
mh.Observe(2)
|
|
mh.Observe(4)
|
|
mh.Observe(8)
|
|
|
|
want := "[1 2 4 8]"
|
|
for i, m := range []fmt.Stringer{h1, h2, h3} {
|
|
if have := m.String(); want != have {
|
|
t.Errorf("g%d: want %q, have %q", i+1, want, have)
|
|
}
|
|
}
|
|
}
|
|
|
|
type mockCounter struct {
|
|
obs []float64
|
|
}
|
|
|
|
func (c *mockCounter) Add(delta float64) { c.obs = append(c.obs, delta) }
|
|
func (c *mockCounter) With(...string) metrics.Counter { return c }
|
|
func (c *mockCounter) String() string { return fmt.Sprintf("%v", c.obs) }
|
|
|
|
type mockGauge struct {
|
|
obs []float64
|
|
}
|
|
|
|
func (g *mockGauge) Set(value float64) { g.obs = append(g.obs, value) }
|
|
func (g *mockGauge) With(...string) metrics.Gauge { return g }
|
|
func (g *mockGauge) String() string { return fmt.Sprintf("%v", g.obs) }
|
|
func (g *mockGauge) Add(delta float64) {
|
|
var value float64
|
|
if len(g.obs) > 0 {
|
|
value = g.obs[len(g.obs)-1] + delta
|
|
} else {
|
|
value = delta
|
|
}
|
|
g.obs = append(g.obs, value)
|
|
}
|
|
|
|
type mockHistogram struct {
|
|
obs []float64
|
|
}
|
|
|
|
func (h *mockHistogram) Observe(value float64) { h.obs = append(h.obs, value) }
|
|
func (h *mockHistogram) With(...string) metrics.Histogram { return h }
|
|
func (h *mockHistogram) String() string { return fmt.Sprintf("%v", h.obs) }
|