示例#1
0
	"net/http"

	fakehttp "github.com/cloudfoundry/bosh-agent/internal/github.com/cloudfoundry/bosh-utils/http/fakes"
	boshlog "github.com/cloudfoundry/bosh-agent/internal/github.com/cloudfoundry/bosh-utils/logger"

	. "github.com/cloudfoundry/bosh-agent/internal/github.com/onsi/ginkgo"
	. "github.com/cloudfoundry/bosh-agent/internal/github.com/onsi/gomega"

	. "github.com/cloudfoundry/bosh-agent/internal/github.com/cloudfoundry/bosh-utils/http"
)

var _ = Describe("RetryClient", func() {
	Describe("Do", func() {
		var (
			retryClient Client
			maxAttempts int
			fakeClient  *fakehttp.FakeClient
		)

		BeforeEach(func() {
			fakeClient = fakehttp.NewFakeClient()
			logger := boshlog.NewLogger(boshlog.LevelNone)
			maxAttempts = 7

			retryClient = NewRetryClient(fakeClient, uint(maxAttempts), 0, logger)
		})

		It("returns response from retryable request", func() {
			fakeClient.SetMessage("fake-response-body")
			fakeClient.StatusCode = 204
	. "github.com/cloudfoundry/bosh-agent/internal/github.com/cloudfoundry/bosh-utils/http"

	. "github.com/cloudfoundry/bosh-agent/internal/github.com/onsi/ginkgo"
	. "github.com/cloudfoundry/bosh-agent/internal/github.com/onsi/gomega"

	fakehttp "github.com/cloudfoundry/bosh-agent/internal/github.com/cloudfoundry/bosh-utils/http/fakes"

	boshlog "github.com/cloudfoundry/bosh-agent/internal/github.com/cloudfoundry/bosh-utils/logger"
)

var _ = Describe("RequestRetryable", func() {
	Describe("Attempt", func() {
		var (
			requestRetryable RequestRetryable
			request          *http.Request
			fakeClient       *fakehttp.FakeClient
		)

		BeforeEach(func() {
			fakeClient = fakehttp.NewFakeClient()
			logger := boshlog.NewLogger(boshlog.LevelNone)

			request = &http.Request{
				Body: ioutil.NopCloser(strings.NewReader("fake-request-body")),
			}

			requestRetryable = NewRequestRetryable(request, fakeClient, logger)
		})

		It("calls Do on the delegate", func() {