client.GetVhostReturns(nil, fmt.Errorf("vhost does not exist"))
			client.PutVhostReturns(&http.Response{StatusCode: http.StatusNoContent}, nil)
			client.DeleteVhostReturns(&http.Response{StatusCode: http.StatusNoContent}, nil)
			client.UpdatePermissionsInReturns(&http.Response{StatusCode: http.StatusNoContent}, nil)
			client.PutPolicyReturns(&http.Response{StatusCode: http.StatusNoContent}, nil)
			client.PutUserReturns(&http.Response{StatusCode: http.StatusNoContent}, nil)
			client.GetUserReturns(nil, fmt.Errorf(rabbitbroker.NotFoundIdentifier))

			credentialsGenerator.GenerateReturns(rabbitbroker.Credentials{
				Username: "******",
				Password: "******",
			})
		})

		It("returns no error", func() {
			_, err := broker.Provision("my-service-id", brokerapi.ProvisionDetails{}, false)
			Expect(err).NotTo(HaveOccurred())
		})

		It("logs a message stating that it is provisioning", func() {
			_, err := broker.Provision("my-service-id", brokerapi.ProvisionDetails{}, false)
			Expect(err).NotTo(HaveOccurred())
			Expect(logger.LogMessages()).To(ContainElement(ContainSubstring("Asked to provision a service: my-service-id")))
		})

		It("returns a dashboard url", func() {
			provisionedSpec, err := broker.Provision("my-service-id", brokerapi.ProvisionDetails{}, false)
			Expect(err).NotTo(HaveOccurred())
			Expect(provisionedSpec.DashboardURL).To(MatchRegexp(`https://%s/#/login/[a-zA-Z0-9\-]+/[a-zA-Z0-9\-]+`, config.Rabbitmq.ManagementDomain))
		})