1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-05-06 19:29:15 +08:00
Dejan Mijic c966a7802d
Integrate manager service
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>
2017-09-23 01:03:27 +02:00

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) }