Context("with error status code", func() { It("returns the status as error", func() { client.UpdatePermissionsInReturns(&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")) Expect(logger.LogMessages()).To(ContainElement(ContainSubstring("Failed to provision a service: my-service-id"))) }) }) }) It("creates policy", func() { broker.Provision("my-service-id", brokerapi.ProvisionDetails{}, false) Expect(client.PutPolicyCallCount()).To(Equal(1)) vhost, policyName, policy := client.PutPolicyArgsForCall(0) Expect(vhost).To(Equal("my-service-id")) Expect(policyName).To(Equal(config.Rabbitmq.Policy.Name)) Expect(policy.Definition).To(Equal(config.Rabbitmq.Policy.Definition)) Expect(policy.Priority).To(Equal(config.Rabbitmq.Policy.Priority)) }) Context("when policy creations fails", func() { It("logs and returns the error", func() { client.PutPolicyReturns(nil, fmt.Errorf("create-policy-failed")) _, err := broker.Provision("my-service-id", brokerapi.ProvisionDetails{}, false) Expect(err).To(MatchError("create-policy-failed")) Expect(logger.LogMessages()).To(ContainElement(ContainSubstring("Failed to provision a service: my-service-id"))) })