Sha256: 8099f7647b439af6258dd9be7796a42ee8519e81f40180644d5230d827010e20

Contents?: true

Size: 1.64 KB

Versions: 6

Compression:

Stored size: 1.64 KB

Contents

require 'spec_helper'

describe LearnOpen::Adapters::SshAdapter do
  describe '#authenticated?' do
    let(:status) { double() }
    let(:ssh_adapter) { LearnOpen::Adapters::SshAdapter.new(user: 'foo', hostname: 'bar') }

    it 'returns true on success' do
      allow(status).to receive(:exitstatus).and_return(LearnOpen::Adapters::SshAdapter::SSH_AUTH_SUCCESS_EXIT_STATUS)
      allow(LearnOpen.system_adapter).to receive(:run_command_with_capture).and_return(['', '', status])
      expect(ssh_adapter.authenticated?).to be true
    end

    it 'return false when permission denied' do
      allow(status).to receive(:exitstatus).and_return(LearnOpen::Adapters::SshAdapter::SSH_AUTH_FAILURE_EXIT_STATUS)
      allow(LearnOpen.system_adapter).to receive(:run_command_with_capture).and_return(['', 'permission denied', status])
      expect(ssh_adapter.authenticated?).to be false
    end

    it 'raises an unknown error for failures that arent permission denied' do
      allow(status).to receive(:exitstatus).and_return(LearnOpen::Adapters::SshAdapter::SSH_AUTH_FAILURE_EXIT_STATUS)
      allow(LearnOpen.system_adapter).to receive(:run_command_with_capture).and_return(['', 'core meltdown', status])
      expect{ssh_adapter.authenticated?}.to raise_error LearnOpen::Adapters::SshAdapter::UnknownError
    end

    it 'raises an unknown error for other exit statuses' do
      allow(status).to receive(:exitstatus).and_return(1337)
      allow(LearnOpen.system_adapter).to receive(:run_command_with_capture).and_return(['', 'alien abduction', status])
      expect{ssh_adapter.authenticated?}.to raise_error LearnOpen::Adapters::SshAdapter::UnknownError
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
learn-open-1.2.28 spec/learn_open/adapters/ssh_adapter_spec.rb
learn-open-1.2.27 spec/learn_open/adapters/ssh_adapter_spec.rb
learn-open-1.2.26 spec/learn_open/adapters/ssh_adapter_spec.rb
learn-open-1.2.24 spec/learn_open/adapters/ssh_adapter_spec.rb
learn-open-1.2.23 spec/learn_open/adapters/ssh_adapter_spec.rb
learn-open-1.2.22 spec/learn_open/adapters/ssh_adapter_spec.rb