"github.com/cloudfoundry-incubator/ltc/ssh/mocks"
	crypto_ssh "golang.org/x/crypto/ssh"
)

type dummyConn struct {
	io.ReadWriteCloser
}

var _ = Describe("SSH", func() {
	var (
		fakeClientDialer   *mocks.FakeClientDialer
		fakeClient         *mocks.FakeClient
		fakeTerm           *mocks.FakeTerm
		fakeListener       *mocks.FakeListener
		fakeSessionFactory *mocks.FakeSessionFactory
		fakeSession        *mocks.FakeSession
		fakeExitHandler    *fake_exit_handler.FakeExitHandler
		sigWinchChan       chan os.Signal

		config *config_package.Config
		appSSH *ssh.SSH
	)

	BeforeEach(func() {
		fakeClientDialer = &mocks.FakeClientDialer{}
		fakeClient = &mocks.FakeClient{}
		fakeTerm = &mocks.FakeTerm{}
		fakeListener = &mocks.FakeListener{}
		fakeSessionFactory = &mocks.FakeSessionFactory{}
		fakeSession = &mocks.FakeSession{}
		fakeExitHandler = &fake_exit_handler.FakeExitHandler{}
	"github.com/cloudfoundry-incubator/ltc/terminal/cursor"
	"github.com/cloudfoundry-incubator/ltc/test_helpers"
	"github.com/codegangsta/cli"
	"github.com/pivotal-golang/clock/fakeclock"
)

const TerminalEsc = "\033["

var _ = Describe("CommandFactory", func() {

	var (
		fakeAppExaminer         *fake_app_examiner.FakeAppExaminer
		outputBuffer            *gbytes.Buffer
		terminalUI              terminal.UI
		fakeTerm                *fake_terminal.FakeTerminal
		fakeClock               *fakeclock.FakeClock
		osSignalChan            chan os.Signal
		fakeExitHandler         *fake_exit_handler.FakeExitHandler
		fakeGraphicalVisualizer *fake_graphical_visualizer.FakeGraphicalVisualizer
		fakeTaskExaminer        *fake_task_examiner.FakeTaskExaminer
		systemDomain            string
	)

	BeforeEach(func() {
		fakeAppExaminer = &fake_app_examiner.FakeAppExaminer{}
		fakeTaskExaminer = &fake_task_examiner.FakeTaskExaminer{}
		outputBuffer = gbytes.NewBuffer()
		terminalUI = terminal.NewUI(nil, outputBuffer, nil)
		fakeTerm = &fake_terminal.FakeTerminal{}
		osSignalChan = make(chan os.Signal, 1)
		location, err := time.LoadLocation("Africa/Djibouti")
		Expect(err).NotTo(HaveOccurred())