Sha256: 32578fd73017eefd9c02ff1f8b3edc06219f3b4ac770496946835b7a31a2f00b

Contents?: true

Size: 1.7 KB

Versions: 8

Compression:

Stored size: 1.7 KB

Contents

require "spec_helper"

describe Imap::Backup::Configuration::List do
  let(:accounts) do
    [
      {username: "a1@example.com"},
      {username: "a2@example.com"}
    ]
  end
  let(:store) do
    double("Imap::Backup::Configuration::Store", accounts: accounts)
  end
  let(:exists) { true }
  let(:connection1) do
    double("Imap::Backup::Account::Connection", disconnect: nil)
  end
  let(:connection2) do
    double("Imap::Backup::Account::Connection", disconnect: nil)
  end

  before do
    allow(Imap::Backup::Configuration::Store).to receive(:new) { store }
    allow(Imap::Backup::Configuration::Store).
      to receive(:exist?) { exists }
    allow(Imap::Backup::Account::Connection).
      to receive(:new).with(accounts[0]) { connection1 }
    allow(Imap::Backup::Account::Connection).
      to receive(:new).with(accounts[1]) { connection2 }
  end

  subject { described_class.new }

  context "#initialize" do
  end

  context "#each_connection" do
    specify "calls the block with each account's connection" do
      connections = []

      subject.each_connection { |a| connections << a }

      expect(connections).to eq([connection1, connection2])
    end

    context "with account parameter" do
      subject { described_class.new(["a2@example.com"]) }

      it "should only create requested accounts" do
        connections = []

        subject.each_connection { |a| connections << a }

        expect(connections).to eq([connection2])
      end
    end

    context "when the configuration file is missing" do
      let(:exists) { false }

      it "fails" do
        expect {
          subject.each_connection {}
        }.to raise_error(Imap::Backup::ConfigurationNotFound, /not found/)
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
imap-backup-2.0.0 spec/unit/imap/backup/configuration/list_spec.rb
imap-backup-1.4.2 spec/unit/configuration/list_spec.rb
imap-backup-2.0.0.rc4 spec/unit/imap/backup/configuration/list_spec.rb
imap-backup-1.4.1 spec/unit/configuration/list_spec.rb
imap-backup-1.4.0 spec/unit/configuration/list_spec.rb
imap-backup-2.0.0.rc3 spec/unit/imap/backup/configuration/list_spec.rb
imap-backup-2.0.0.rc2 spec/unit/imap/backup/configuration/list_spec.rb
imap-backup-2.0.0.rc1 spec/unit/configuration/list_spec.rb