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"))