Expect(domainRepo.FindByNameInOrgCallCount()).To(Equal(1)) domainName, orgGUID := domainRepo.FindByNameInOrgArgsForCall(0) Expect(domainName).To(Equal("domain-name")) Expect(orgGUID).To(Equal("fake-org-guid")) }) Context("when it finds the domain successfully", func() { var actualDomain models.DomainFields BeforeEach(func() { actualDomain = models.DomainFields{ Guid: "domain-guid", Name: "domain-name", } domainRepo.FindByNameInOrgReturns(actualDomain, nil) }) It("checks if the route exists", func() { cmd.Execute(flagContext) Expect(routeRepo.CheckIfExistsCallCount()).To(Equal(1)) hostName, domain, path := routeRepo.CheckIfExistsArgsForCall(0) Expect(hostName).To(Equal("host-name")) Expect(actualDomain).To(Equal(domain)) Expect(path).To(Equal("")) }) Context("when a path is passed", func() { BeforeEach(func() { flagContext = flags.NewFlagContext(cmd.MetaData().Flags) err := flagContext.Parse("hostname", "domain-name", "--path", "the-path")
Expect(runCommand("foo.com")).To(BeFalse()) }) It("fails when the an org is not targetted", func() { requirementsFactory.TargetedOrgSuccess = false Expect(runCommand("foo.com")).To(BeFalse()) }) }) Context("when the domain is shared", func() { BeforeEach(func() { domainRepo.FindByNameInOrgReturns( models.DomainFields{ Name: "foo1.com", Guid: "foo1-guid", Shared: true, }, nil) }) It("informs the user that the domain is shared", func() { runCommand("foo1.com") Expect(domainRepo.DeleteCallCount()).To(BeZero()) Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"domain"}, []string{"foo1.com"}, []string{"is a shared domain, not an owned domain."}, []string{"TIP"}, []string{"Use `cf delete-shared-domain` to delete shared domains."}, ))
}) It("fails if an organiztion is not targeted", func() { requirementsFactory.LoginSuccess = true Expect(runCommand("foo.com")).To(BeFalse()) }) }) Context("when the domain is owned", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true requirementsFactory.TargetedOrgSuccess = true domainRepo.FindByNameInOrgReturns( models.DomainFields{ Name: "foo1.com", Guid: "foo1-guid", Shared: false, }, nil) }) It("informs the user that the domain is not shared", func() { runCommand("foo1.com") Expect(domainRepo.DeleteSharedDomainCallCount()).To(BeZero()) Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"domain"}, []string{"foo1.com"}, []string{"is an owned domain, not a shared domain."}, []string{"TIP"}, []string{"Use `cf delete-domain` to delete owned domains."}, ))
It("prints out route does not exist", func() { runCommand("non-existent-route", "example.com") Expect(ui.Outputs).To(ContainSubstrings( []string{"Checking for route..."}, []string{"OK"}, []string{"Route non-existent-route.example.com does not exist"}, )) }) }) Context("when finding the domain returns an error", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true requirementsFactory.TargetedOrgSuccess = true domainRepo.FindByNameInOrgReturns(models.DomainFields{}, errors.New("Domain not found")) }) It("prints out route does not exist", func() { runCommand("some-silly-route", "some-non-real-domain") Expect(ui.Outputs).To(ContainSubstrings( []string{"Checking for route..."}, []string{"FAILED"}, []string{"Domain not found"}, )) }) }) Context("when checking if the route exists returns an error", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true