"github.com/cloudfoundry-incubator/lattice/ltc/test_helpers" "github.com/codegangsta/cli" ) var _ = Describe("SSH CommandFactory", func() { var ( config *config_package.Config outputBuffer *gbytes.Buffer terminalUI terminal.UI fakeExitHandler *fake_exit_handler.FakeExitHandler fakeSecureShell *fake_secure_shell.FakeSecureShell ) BeforeEach(func() { config = config_package.New(nil) config.SetTarget("lattice.xip.io") outputBuffer = gbytes.NewBuffer() terminalUI = terminal.NewUI(nil, outputBuffer, nil) fakeExitHandler = &fake_exit_handler.FakeExitHandler{} fakeSecureShell = &fake_secure_shell.FakeSecureShell{} }) Describe("SSHCommand", func() { var sshCommand cli.Command BeforeEach(func() { commandFactory := command_factory.NewSSHCommandFactory(config, terminalUI, fakeExitHandler, fakeSecureShell) sshCommand = commandFactory.MakeSSHCommand() })
Describe("App.CommandNotFound", func() { It("prints unknown command message and exits nonzero", func() { testContext := cli.NewContext(cliApp, &flag.FlagSet{}, nil) cliApp.CommandNotFound(testContext, "do_it") Expect(outputBuffer).To(test_helpers.Say("ltc: 'do_it' is not a registered command. See 'ltc help'")) Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{1})) }) }) Describe("App.Before", func() { Context("when running the target command", func() { It("does not verify the current target", func() { cliConfig.SetTarget("my-lattice.example.com") Expect(cliConfig.Save()).To(Succeed()) commandRan := false cliApp.Commands = []cli.Command{ cli.Command{ Name: "target", Action: func(ctx *cli.Context) { commandRan = true }, }, } Expect(cliApp.Run([]string{"ltc", "target"})).To(Succeed()) Expect(commandRan).To(BeTrue())
Describe("TargetCommand", func() { var targetCommand cli.Command verifyOldTargetStillSet := func() { newConfig := config_package.New(configPersister) Expect(newConfig.Load()).To(Succeed()) Expect(newConfig.Receptor()).To(Equal("http://*****:*****@receptor.oldtarget.com")) } BeforeEach(func() { commandFactory := command_factory.NewConfigCommandFactory(config, terminalUI, fakeTargetVerifier, fakeBlobStoreVerifier, fakeExitHandler) targetCommand = commandFactory.MakeTargetCommand() config.SetTarget("oldtarget.com") config.SetLogin("olduser", "oldpass") Expect(config.Save()).To(Succeed()) }) Context("displaying the target", func() { JustBeforeEach(func() { test_helpers.ExecuteCommandWithArgs(targetCommand, []string{}) }) It("outputs the current user and target host", func() { Expect(outputBuffer).To(test_helpers.SayLine("Target:\t\[email protected]")) }) Context("when no username is set", func() { BeforeEach(func() {
) var _ = Describe("Config", func() { var ( testPersister *fakePersister testConfig *config.Config ) BeforeEach(func() { testPersister = &fakePersister{} testConfig = config.New(testPersister) }) Describe("Target", func() { It("sets the target", func() { testConfig.SetTarget("mynewapi.com") Expect(testConfig.Target()).To(Equal("mynewapi.com")) }) }) Describe("Username", func() { It("sets the target", func() { testConfig.SetLogin("ausername", "apassword") Expect(testConfig.Username()).To(Equal("ausername")) }) }) Describe("Receptor", func() { It("returns the Receptor with a username and password", func() {
secureShell *secure_shell.SecureShell oldTerm string ) BeforeEach(func() { fakeDialer = &fake_dialer.FakeDialer{} fakeSession = &fake_secure_session.FakeSecureSession{} fakeTerm = &fake_term.FakeTerm{} fakeStdin = gbytes.NewBuffer() fakeStdout = gbytes.NewBuffer() fakeStderr = gbytes.NewBuffer() fakeClock = fakeclock.NewFakeClock(time.Now()) config = config_package.New(nil) config.SetTarget("10.0.12.34") config.SetLogin("user", "past") secureShell = &secure_shell.SecureShell{ Dialer: fakeDialer, Term: fakeTerm, Clock: fakeClock, Ticker: fakeclock.NewFakeTicker(fakeClock, 1*time.Second), } fakeDialer.DialReturns(fakeSession, nil) oldTerm = os.Getenv("TERM") os.Setenv("TERM", "defaultterm") }) AfterEach(func() {
"golang.org/x/crypto/ssh" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("AppDialer", func() { Describe("#Dial", func() { var ( origDial func(network, addr string, config *ssh.ClientConfig) (*ssh.Client, error) config *config_package.Config ) BeforeEach(func() { config = config_package.New(nil) config.SetTarget("some-host") config.SetLogin("some-user", "some-password") origDial = sshapi.DialFunc }) AfterEach(func() { sshapi.DialFunc = origDial }) It("should create a client", func() { dialCalled := false sshClient := &ssh.Client{} sshapi.DialFunc = func(network, addr string, config *ssh.ClientConfig) (*ssh.Client, error) { Expect(network).To(Equal("tcp")) Expect(addr).To(Equal("some-host:2222"))