From 73175e95c253471f7f06dee04f88e76c77204e6c Mon Sep 17 00:00:00 2001
From: Wild Kat <wk@futureinquestion.net>
Date: Fri, 27 Apr 2018 19:07:31 +0200
Subject: add docs and tests for resolve_dns

---
 spec/input/ssh_spec.rb | 49 +++++++++++++++++++++++++++++++++++++++++--------
 1 file changed, 41 insertions(+), 8 deletions(-)

(limited to 'spec/input')

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
-- 
cgit v1.2.3