// Code generated by mockery v2.12.2. DO NOT EDIT.

package mocks

import (
	request "github.com/aws/aws-sdk-go/aws/request"
	mock "github.com/stretchr/testify/mock"

	testing "testing"

	time "time"
)

// Retryer is an autogenerated mock type for the Retryer type
type Retryer struct {
	mock.Mock
}

// MaxRetries provides a mock function with given fields:
func (_m *Retryer) MaxRetries() int {
	ret := _m.Called()

	var r0 int
	if rf, ok := ret.Get(0).(func() int); ok {
		r0 = rf()
	} else {
		r0 = ret.Get(0).(int)
	}

	return r0
}

// RetryRules provides a mock function with given fields: _a0
func (_m *Retryer) RetryRules(_a0 *request.Request) time.Duration {
	ret := _m.Called(_a0)

	var r0 time.Duration
	if rf, ok := ret.Get(0).(func(*request.Request) time.Duration); ok {
		r0 = rf(_a0)
	} else {
		r0 = ret.Get(0).(time.Duration)
	}

	return r0
}

// ShouldRetry provides a mock function with given fields: _a0
func (_m *Retryer) ShouldRetry(_a0 *request.Request) bool {
	ret := _m.Called(_a0)

	var r0 bool
	if rf, ok := ret.Get(0).(func(*request.Request) bool); ok {
		r0 = rf(_a0)
	} else {
		r0 = ret.Get(0).(bool)
	}

	return r0
}

// NewRetryer creates a new instance of Retryer. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations.
func NewRetryer(t testing.TB) *Retryer {
	mock := &Retryer{}
	mock.Mock.Test(t)

	t.Cleanup(func() { mock.AssertExpectations(t) })

	return mock
}
