github.com/cloudfoundry-attic/garden-linux@v0.333.2-candidate/containerizer/system/initializer_linux_test.go (about) 1 package system_test 2 3 import ( 4 "errors" 5 6 "github.com/cloudfoundry-incubator/garden-linux/containerizer/system" 7 "github.com/cloudfoundry-incubator/garden-linux/containerizer/system/fake_step_runner" 8 9 . "github.com/onsi/ginkgo" 10 . "github.com/onsi/gomega" 11 ) 12 13 var _ = Describe("Initializer", func() { 14 15 var ( 16 step1 *fake_step_runner.FakeStepRunner 17 step2 *fake_step_runner.FakeStepRunner 18 init *system.Initializer 19 ) 20 21 BeforeEach(func() { 22 step1 = &fake_step_runner.FakeStepRunner{} 23 step2 = &fake_step_runner.FakeStepRunner{} 24 25 init = &system.Initializer{ 26 Steps: []system.StepRunner{step1, step2}, 27 } 28 }) 29 30 It("runs each initializer method", func() { 31 Expect(init.Init()).To(Succeed()) 32 Expect(step1.RunCallCount()).To(Equal(1)) 33 Expect(step2.RunCallCount()).To(Equal(1)) 34 }) 35 36 Context("when an early step fails", func() { 37 BeforeEach(func() { 38 step1.RunReturns(errors.New("aaaaaaa")) 39 }) 40 41 It("does not run subsequent steps", func() { 42 Expect(init.Init()).To(MatchError("aaaaaaa")) 43 Expect(step1.RunCallCount()).To(Equal(1)) 44 Expect(step2.RunCallCount()).To(Equal(0)) 45 }) 46 }) 47 })