BeforeEach(func() { setupTestServer(testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "DELETE", Path: "/v2/service_bindings/service-binding-2-guid", Response: testnet.TestResponse{Status: http.StatusOK}, })) serviceInstance.Guid = "my-service-instance-guid" binding := models.ServiceBindingFields{} binding.Url = "/v2/service_bindings/service-binding-1-guid" binding.AppGuid = "app-1-guid" binding2 := models.ServiceBindingFields{} binding2.Url = "/v2/service_bindings/service-binding-2-guid" binding2.AppGuid = "app-2-guid" serviceInstance.ServiceBindings = []models.ServiceBindingFields{binding, binding2} }) It("TestDeleteServiceBinding", func() { found, apiErr := repo.Delete(serviceInstance, "app-2-guid") Expect(testHandler).To(testnet.HaveAllRequestsCalled()) Expect(apiErr).NotTo(HaveOccurred()) Expect(found).To(BeTrue()) }) }) Context("when binding does not exist", func() { var serviceInstance models.ServiceInstance BeforeEach(func() {
err := repo.DeleteService(serviceInstance) Expect(testHandler).To(HaveAllRequestsCalled()) Expect(err).NotTo(HaveOccurred()) }) It("doesn't delete the service when apps are bound", func() { setupTestServer() serviceInstance := models.ServiceInstance{} serviceInstance.GUID = "my-service-instance-guid" serviceInstance.ServiceBindings = []models.ServiceBindingFields{ { URL: "/v2/service_bindings/service-binding-1-guid", AppGUID: "app-1-guid", }, { URL: "/v2/service_bindings/service-binding-2-guid", AppGUID: "app-2-guid", }, } err := repo.DeleteService(serviceInstance) Expect(err).To(HaveOccurred()) Expect(err).To(BeAssignableToTypeOf(&errors.ServiceAssociationError{})) }) It("doesn't delete the service when keys are bound", func() { setupTestServer() serviceInstance := models.ServiceInstance{} serviceInstance.GUID = "my-service-instance-guid"