Sha256: be7cf2fffe4bd6e719c790e2b5601bf712ed6023102ffede80f624f4bdd2e54f

Contents?: true

Size: 1.42 KB

Versions: 7

Compression:

Stored size: 1.42 KB

Contents

# encoding: utf-8

require File.expand_path('../spec_helper.rb', __FILE__)

describe Backup::Dependency do
  before do
    Backup::Dependency.stubs(:all).returns(
      'net-sftp' => {
        :require => 'net/sftp',
        :version => '~> 2.0.5',
        :for     => 'SFTP Protocol (SFTP Storage)'
    })
  end

  describe ".load" do
    it "should load and require given dependency" do
      Backup::Dependency.expects(:gem).with("net-sftp", "~> 2.0.5")
      Backup::Dependency.expects(:require).with("net/sftp")
      Backup::Dependency.load("net-sftp")
    end

    context "on a missing dependency" do
      before do
        Backup::Dependency.stubs(:gem).raises(LoadError)
      end

      it "should display error message" do
        Backup::Logger.expects(:error).with do |exception|
          exception.message.should == "Dependency::LoadError: Dependency missing
  Dependency required for:
  SFTP Protocol (SFTP Storage)
  To install the gem, issue the following command:
  > gem install net-sftp -v '~> 2.0.5'
  Please try again after installing the missing dependency."
        end

        expect do
          Backup::Dependency.load("net-sftp")
        end.to raise_error(SystemExit)
      end

      it "should exit with status code 1" do
        Backup::Logger.expects(:error)

        expect do
          Backup::Dependency.load("net-sftp")
        end.to raise_error { |exit| exit.status.should be(1) }
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 3 rubygems

Version Path
backup-agoddard-3.0.28 spec/dependency_spec.rb
backup-agoddard-3.0.27 spec/dependency_spec.rb
ey-vendored-backup-3.0.27 spec/dependency_spec.rb
backup-3.0.27 spec/dependency_spec.rb
backup-3.0.26 spec/dependency_spec.rb
backup-3.0.25 spec/dependency_spec.rb
backup-3.0.24 spec/dependency_spec.rb