Esempio n. 1
0
			client.Stdin = bytes.NewBufferString("some client in data")
			client.Stdout = &bytes.Buffer{}
			client.Stderr = &bytes.Buffer{}
			mockSessionStdinBuffer := &bytes.Buffer{}
			mockSessionStdin := &mockConn{Writer: mockSessionStdinBuffer}
			mockSessionStdout := bytes.NewBufferString("some session out data")
			mockSessionStderr := bytes.NewBufferString("some session err data")
			mockSession.StdinPipeReturns(mockSessionStdin, nil)
			mockSession.StdoutPipeReturns(mockSessionStdout, nil)
			mockSession.StderrPipeReturns(mockSessionStderr, nil)

			_, err := client.Open(100, 200, true)
			Expect(err).NotTo(HaveOccurred())

			Expect(mockSession.RequestPtyCallCount()).To(Equal(1))
			termType, height, width, modes := mockSession.RequestPtyArgsForCall(0)
			Expect(termType).To(Equal("some term"))
			Expect(height).To(Equal(200))
			Expect(width).To(Equal(100))
			Expect(modes[ssh.ECHO]).To(Equal(uint32(1)))
			Expect(modes[ssh.TTY_OP_ISPEED]).To(Equal(uint32(115200)))
			Expect(modes[ssh.TTY_OP_OSPEED]).To(Equal(uint32(115200)))

			Eventually(mockSessionStdinBuffer.String).Should(Equal("some client in data"))
			Eventually(client.Stdout.(*bytes.Buffer).String).Should(Equal("some session out data"))
			Eventually(client.Stderr.(*bytes.Buffer).String).Should(Equal("some session err data"))
			Eventually(func() bool { return mockSessionStdin.closed }).Should(BeTrue())
		})

		It("should not request a pty when desirePTY is false", func() {
			client.Stdin = bytes.NewBufferString("some client in data")