github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/cf/requirements/requirements_test.go (about) 1 package requirements_test 2 3 import ( 4 . "code.cloudfoundry.org/cli/cf/requirements" 5 6 "code.cloudfoundry.org/cli/cf/requirements/requirementsfakes" 7 "errors" 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 ) 11 12 var _ = Describe("Requirements", func() { 13 Context("When there are multiple requirements", func() { 14 It("executes all the requirements", func() { 15 r1 := new(requirementsfakes.FakeRequirement) 16 r1.ExecuteReturns(nil) 17 r2 := new(requirementsfakes.FakeRequirement) 18 r2.ExecuteReturns(nil) 19 20 // SETUP 21 requirements := Requirements{ 22 r1, 23 r2, 24 } 25 26 // EXECUTE 27 err := requirements.Execute() 28 29 // ASSERT 30 Expect(err).NotTo(HaveOccurred()) 31 Expect(r1.ExecuteCallCount()).To(Equal(1)) 32 Expect(r2.ExecuteCallCount()).To(Equal(1)) 33 }) 34 35 It("returns the first error that occurs", func() { 36 disaster := errors.New("OH NO") 37 otherDisaster := errors.New("WHAT!") 38 39 r1 := new(requirementsfakes.FakeRequirement) 40 r1.ExecuteReturns(disaster) 41 r2 := new(requirementsfakes.FakeRequirement) 42 r2.ExecuteReturns(otherDisaster) 43 44 // SETUP 45 requirements := Requirements{ 46 r1, 47 r2, 48 } 49 50 // EXECUTE 51 err := requirements.Execute() 52 53 // ASSERT 54 Expect(err).To(Equal(disaster)) 55 Expect(err).NotTo(Equal(otherDisaster)) 56 Expect(r1.ExecuteCallCount()).To(Equal(1)) 57 Expect(r2.ExecuteCallCount()).To(Equal(0)) 58 }) 59 }) 60 })