Context("when the command fails to start", func() { BeforeEach(func() { fakeSecureSession.StartReturns(errors.New("oh well")) }) It("returns the error", func() { Expect(sessionError).To(MatchError("oh well")) }) }) }) Context("when the shell or command has started", func() { var ( stdin *fake_io.FakeReadCloser stdout, stderr *fake_io.FakeWriter stdinPipe *fake_io.FakeWriteCloser stdoutPipe, stderrPipe *fake_io.FakeReader ) BeforeEach(func() { stdin = &fake_io.FakeReadCloser{} stdin.ReadStub = func(p []byte) (int, error) { p[0] = 0 return 1, io.EOF } stdinPipe = &fake_io.FakeWriteCloser{} stdinPipe.WriteStub = func(p []byte) (int, error) { defer GinkgoRecover() Expect(p[0]).To(Equal(byte(0))) return 1, nil }
"github.com/pivotal-golang/lager/lagertest" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Copy", func() { var logger lager.Logger BeforeEach(func() { logger = lagertest.NewTestLogger("test") }) Describe("Copy", func() { var reader io.Reader var fakeWriter *fake_io.FakeWriter var wg *sync.WaitGroup BeforeEach(func() { reader = strings.NewReader("message") fakeWriter = &fake_io.FakeWriter{} wg = nil }) JustBeforeEach(func() { helpers.Copy(logger, wg, fakeWriter, reader) }) It("copies from source to target", func() { Expect(fakeWriter.WriteCallCount()).To(Equal(1)) Expect(string(fakeWriter.WriteArgsForCall(0))).To(Equal("message"))