nopbreaker_test.go 785 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package breaker
  2. import (
  3. "errors"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. )
  7. func TestNopBreaker(t *testing.T) {
  8. b := newNoOpBreaker()
  9. assert.Equal(t, noOpBreakerName, b.Name())
  10. p, err := b.Allow()
  11. assert.Nil(t, err)
  12. p.Accept()
  13. for i := 0; i < 1000; i++ {
  14. p, err := b.Allow()
  15. assert.Nil(t, err)
  16. p.Reject("any")
  17. }
  18. assert.Nil(t, b.Do(func() error {
  19. return nil
  20. }))
  21. assert.Nil(t, b.DoWithAcceptable(func() error {
  22. return nil
  23. }, defaultAcceptable))
  24. errDummy := errors.New("any")
  25. assert.Equal(t, errDummy, b.DoWithFallback(func() error {
  26. return errDummy
  27. }, func(err error) error {
  28. return nil
  29. }))
  30. assert.Equal(t, errDummy, b.DoWithFallbackAcceptable(func() error {
  31. return errDummy
  32. }, func(err error) error {
  33. return nil
  34. }, defaultAcceptable))
  35. }