Пример #1
0
		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())