BeforeEach(func() { var err error container, err = gdnr.Lookup("banana") Expect(err).NotTo(HaveOccurred()) }) Describe("running a process in a container", func() { It("asks the containerizer to run the process", func() { origSpec := garden.ProcessSpec{Path: "ripe"} origIO := garden.ProcessIO{ Stdout: gbytes.NewBuffer(), } _, err := container.Run(origSpec, origIO) Expect(err).ToNot(HaveOccurred()) Expect(containerizer.RunCallCount()).To(Equal(1)) _, id, spec, io := containerizer.RunArgsForCall(0) Expect(id).To(Equal("banana")) Expect(spec).To(Equal(origSpec)) Expect(io).To(Equal(origIO)) }) Context("when the containerizer fails to run a process", func() { BeforeEach(func() { containerizer.RunReturns(nil, errors.New("lost my banana")) }) It("returns the error", func() { _, err := container.Run(garden.ProcessSpec{}, garden.ProcessIO{}) Expect(err).To(MatchError("lost my banana")) })