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  })