mirror of
https://github.com/zeromicro/go-zero.git
synced 2025-01-23 09:00:20 +08:00
44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
package breaker
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestBucketAdd(t *testing.T) {
|
|
b := &bucket{}
|
|
|
|
// Test succeed
|
|
b.Add(0) // Using 0 for success
|
|
assert.Equal(t, int64(1), b.Sum, "Sum should be incremented")
|
|
assert.Equal(t, int64(1), b.Success, "Success should be incremented")
|
|
assert.Equal(t, int64(0), b.Failure, "Failure should not be incremented")
|
|
assert.Equal(t, int64(0), b.Drop, "Drop should not be incremented")
|
|
|
|
// Test failure
|
|
b.Add(fail)
|
|
assert.Equal(t, int64(2), b.Sum, "Sum should be incremented")
|
|
assert.Equal(t, int64(1), b.Failure, "Failure should be incremented")
|
|
assert.Equal(t, int64(0), b.Drop, "Drop should not be incremented")
|
|
|
|
// Test drop
|
|
b.Add(drop)
|
|
assert.Equal(t, int64(3), b.Sum, "Sum should be incremented")
|
|
assert.Equal(t, int64(1), b.Drop, "Drop should be incremented")
|
|
}
|
|
|
|
func TestBucketReset(t *testing.T) {
|
|
b := &bucket{
|
|
Sum: 3,
|
|
Success: 1,
|
|
Failure: 1,
|
|
Drop: 1,
|
|
}
|
|
b.Reset()
|
|
assert.Equal(t, int64(0), b.Sum, "Sum should be reset to 0")
|
|
assert.Equal(t, int64(0), b.Success, "Success should be reset to 0")
|
|
assert.Equal(t, int64(0), b.Failure, "Failure should be reset to 0")
|
|
assert.Equal(t, int64(0), b.Drop, "Drop should be reset to 0")
|
|
}
|