Context("when force is set", func() { BeforeEach(func() { err := flagContext.Parse("service-instance-name", "-f") Expect(err).NotTo(HaveOccurred()) }) It("does not ask the user if they would like to proceed", func() { Expect(ui.Prompts).NotTo(ContainSubstrings( []string{"Really purge service instance service-instance-name from Cloud Foundry?"}, )) }) It("purges the service instance", func() { cmd.Execute(flagContext) Expect(serviceRepo.PurgeServiceInstanceCallCount()).To(Equal(1)) Expect(serviceRepo.PurgeServiceInstanceArgsForCall(0)).To(Equal(serviceInstance)) }) }) }) Context("when the instance can not be found", func() { BeforeEach(func() { serviceRepo.FindInstanceByNameReturns(models.ServiceInstance{}, cferrors.NewModelNotFoundError("model-type", "model-name")) }) It("prints a warning", func() { cmd.Execute(flagContext) Expect(ui.Outputs()).To(ContainSubstrings( []string{"Service instance service-instance-name not found"}, ))
)) }) It("asks the user if they would like to proceed", func() { ui.Inputs = []string{"n"} cmd.Execute(flagContext) Eventually(func() []string { return ui.Prompts }).Should(ContainSubstrings( []string{"Really purge service instance service-instance-name from Cloud Foundry?"}, )) }) It("purges the service instance when the response is to proceed", func() { ui.Inputs = []string{"y"} cmd.Execute(flagContext) Eventually(serviceRepo.PurgeServiceInstanceCallCount()).Should(Equal(1)) Expect(serviceRepo.PurgeServiceInstanceArgsForCall(0)).To(Equal(serviceInstance)) }) It("does not purge the service instance when the response is not to proceed", func() { ui.Inputs = []string{"n"} cmd.Execute(flagContext) Consistently(serviceRepo.PurgeServiceInstanceCallCount).Should(BeZero()) }) Context("when force is set", func() { BeforeEach(func() { err := flagContext.Parse("service-instance-name", "-f") Expect(err).NotTo(HaveOccurred()) })