github.com/aporeto-inc/trireme-lib@v10.358.0+incompatible/controller/pkg/counters/counters_test.go (about) 1 package counters 2 3 import ( 4 "errors" 5 "testing" 6 7 . "github.com/smartystreets/goconvey/convey" 8 ) 9 10 func Test_NewCounters(t *testing.T) { 11 12 Convey("When I create new error counters", t, func() { 13 ec := NewCounters() 14 So(ec, ShouldNotBeNil) 15 So(len(ec.counters), ShouldEqual, errMax+1) 16 }) 17 } 18 19 func Test_CounterError(t *testing.T) { 20 21 Convey("When I create new error counters", t, func() { 22 ec := NewCounters() 23 So(ec, ShouldNotBeNil) 24 So(len(ec.counters), ShouldEqual, errMax+1) 25 26 Convey("When I increment counter", func() { 27 err := ec.CounterError(ErrInvalidProtocol, errors.New("unknown protocol")) 28 ec.IncrementCounter(ErrInvalidProtocol) 29 So(err, ShouldResemble, errors.New("unknown protocol")) 30 So(ec.counters[ErrInvalidProtocol], ShouldEqual, 2) 31 }) 32 }) 33 } 34 35 func Test_GetErrorCounter(t *testing.T) { 36 37 Convey("When I create new error counters", t, func() { 38 ec := NewCounters() 39 So(ec, ShouldNotBeNil) 40 So(len(ec.counters), ShouldEqual, errMax+1) 41 42 Convey("When I increment counter and get error", func() { 43 err := ec.CounterError(ErrInvalidProtocol, errors.New("unknown protocol")) 44 ec.IncrementCounter(ErrInvalidProtocol) 45 ec.IncrementCounter(ErrInvalidProtocol) 46 47 So(err, ShouldResemble, errors.New("unknown protocol")) 48 So(ec.counters[ErrInvalidProtocol], ShouldEqual, 3) 49 50 c := ec.GetErrorCounters() 51 52 So(len(c), ShouldEqual, errMax) 53 So(c[ErrInvalidProtocol], ShouldEqual, 3) 54 So(ec.counters[ErrInvalidProtocol], ShouldEqual, 0) 55 }) 56 }) 57 }