client.PutPolicyReturns(&http.Response{StatusCode: http.StatusInternalServerError}, nil)
					_, err := broker.Provision("my-service-id", brokerapi.ProvisionDetails{}, false)
					Expect(err).To(MatchError("http request failed with status code: 500"))
				})
			})

		})
	})

	Context("Deprovision", func() {
		BeforeEach(func() {
			client.DeleteVhostReturns(&http.Response{StatusCode: http.StatusNoContent}, nil)
		})

		It("deletes vhost", func() {
			broker.Deprovision("my-service-id", brokerapi.DeprovisionDetails{}, false)
			Expect(client.DeleteVhostCallCount()).To(Equal(1))
		})

		Context("when deprovisioning fails", func() {
			It("returns the error", func() {
				client.DeleteVhostReturns(nil, fmt.Errorf("vhost-deletion-failed"))
				_, err := broker.Deprovision("my-service-id", brokerapi.DeprovisionDetails{}, false)
				Expect(err).To(MatchError("vhost-deletion-failed"))
			})

			Context("with error status code", func() {
				It("returns the status as error", func() {
					client.DeleteVhostReturns(&http.Response{StatusCode: http.StatusInternalServerError}, nil)
					_, err := broker.Deprovision("my-service-id", brokerapi.DeprovisionDetails{}, false)
					Expect(err).To(MatchError("http request failed with status code: 500"))