diff options
Diffstat (limited to 'spec/input')
| -rw-r--r-- | spec/input/ssh_spec.rb | 49 | 
1 files changed, 41 insertions, 8 deletions
| diff --git a/spec/input/ssh_spec.rb b/spec/input/ssh_spec.rb index 3c33cd8..0a3bd8d 100644 --- a/spec/input/ssh_spec.rb +++ b/spec/input/ssh_spec.rb @@ -8,17 +8,19 @@ describe Oxidized::SSH do      Oxidized::Node.any_instance.stubs(:resolve_repo)      Oxidized::Node.any_instance.stubs(:resolve_input)      Oxidized::Node.any_instance.stubs(:resolve_output) -    @node = Oxidized::Node.new(name: 'example.com', -                               input: 'ssh', -                               output: 'git', -                               model: 'junos', -                               username: 'alma', -                               password: 'armud', -                               vars: { ssh_proxy: 'test.com' })    end    describe "#connect" do -    it "should use proxy command when proxy host given" do +    it "should use proxy command when proxy host given and connect by ip if resolve_dns is true" do +      Oxidized.config.resolve_dns = true +      @node = Oxidized::Node.new(name: 'example.com', +                                 input: 'ssh', +                                 output: 'git', +                                 model: 'junos', +                                 username: 'alma', +                                 password: 'armud', +                                 vars: { ssh_proxy: 'test.com' }) +        ssh = Oxidized::SSH.new        model = mock @@ -39,5 +41,36 @@ describe Oxidized::SSH do        ssh.instance_variable_set("@exec", true)        ssh.connect(@node)      end + +    it "should use proxy command when proxy host given and connect by name if resolve_dns is false" do +      Oxidized.config.resolve_dns = false +      @node = Oxidized::Node.new(name: 'example.com', +                                 input: 'ssh', +                                 output: 'git', +                                 model: 'junos', +                                 username: 'alma', +                                 password: 'armud', +                                 vars: { ssh_proxy: 'test.com' }) + +      ssh = Oxidized::SSH.new + +      model = mock +      model.expects(:cfg).returns('ssh' => []) +      @node.expects(:model).returns(model).at_least_once + +      proxy = mock +      Net::SSH::Proxy::Command.expects(:new).with("ssh test.com -W %h:%p").returns(proxy) +      Net::SSH.expects(:start).with('example.com', 'alma',  port:      22, +                                                            timeout:   Oxidized.config.timeout, +                                                            paranoid:  Oxidized.config.input.ssh.secure, +                                                            keepalive: true, +                                                            proxy:     proxy, +                                                            password: 'armud', +                                                            number_of_password_prompts: 0, +                                                            auth_methods: %w[none publickey password]) + +      ssh.instance_variable_set("@exec", true) +      ssh.connect(@node) +    end    end  end | 
