var ( client *sshapi.Client fakeDialer *mocks.FakeDialer ) BeforeEach(func() { fakeDialer = &mocks.FakeDialer{} client = &sshapi.Client{Dialer: fakeDialer} }) It("should dial a remote connection", func() { localConn := &mockConn{Reader: &bytes.Buffer{}, Writer: &bytes.Buffer{}} remoteConn := &mockConn{Reader: &bytes.Buffer{}, Writer: &bytes.Buffer{}} fakeDialer.DialReturns(remoteConn, nil) Expect(client.Forward(localConn, "some remote address")).To(Succeed()) Expect(fakeDialer.DialCallCount()).To(Equal(1)) protocol, address := fakeDialer.DialArgsForCall(0) Expect(protocol).To(Equal("tcp")) Expect(address).To(Equal("some remote address")) }) It("should copy data in both directions", func() { localConnBuffer := &bytes.Buffer{} remoteConnBuffer := &bytes.Buffer{} localConn := &mockConn{Reader: bytes.NewBufferString("some local data"), Writer: localConnBuffer} remoteConn := &mockConn{Reader: bytes.NewBufferString("some remote data"), Writer: remoteConnBuffer} fakeDialer.DialReturns(remoteConn, nil) Expect(client.Forward(localConn, "some remote address")).To(Succeed())