kinesis-consumer/errors_test.go

31 lines
930 B
Go
Raw Normal View History

2015-05-06 16:18:15 +00:00
package connector
import (
"fmt"
"net"
"testing"
2016-04-30 23:20:01 +00:00
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/bmizerany/assert"
2015-05-06 16:18:15 +00:00
)
func Test_isRecoverableError(t *testing.T) {
testCases := []struct {
err error
isRecoverable bool
}{
2016-04-30 23:20:01 +00:00
{err: awserr.New("ProvisionedThroughputExceededException", "", nil), isRecoverable: true},
{err: awserr.New("Throttling", "", nil), isRecoverable: true},
{err: awserr.New("ServiceUnavailable", "", nil), isRecoverable: true},
{err: awserr.New("ExpiredIteratorException", "", nil), isRecoverable: false},
2015-05-06 16:18:15 +00:00
{err: &net.OpError{Err: fmt.Errorf("connection reset by peer")}, isRecoverable: true},
{err: &net.OpError{Err: fmt.Errorf("unexpected error")}, isRecoverable: false},
{err: fmt.Errorf("an arbitrary error"), isRecoverable: false},
}
for _, tc := range testCases {
2015-05-06 16:18:15 +00:00
isRecoverable := isRecoverableError(tc.err)
assert.Equal(t, isRecoverable, tc.isRecoverable)
2015-05-06 16:18:15 +00:00
}
}