Sha256: 41a53c33c612674760e0947d811cecf746226234ad449d9d5d2c966710eb690c

Contents?: true

Size: 1.86 KB

Versions: 15

Compression:

Stored size: 1.86 KB

Contents

require 'spec_helper'

describe LinuxAdmin::RegistrationSystem do
  context ".registration_type" do
    it "when registered Subscription Manager" do
      stub_registered_to_system(:sm)
      expect(described_class.registration_type).to eq(LinuxAdmin::SubscriptionManager)
    end

    it "when registered RHN" do
      stub_registered_to_system(:sm, :rhn)
      expect(described_class.registration_type).to eq(LinuxAdmin::Rhn)
    end

    it "when unregistered" do
      stub_registered_to_system(nil)
      expect(described_class.registration_type).to eq(described_class)
    end

    it "should memoize results" do
      described_class.should_receive(:registration_type_uncached).once.and_return("anything_non_nil")
      described_class.registration_type
      described_class.registration_type
    end

    it "with reload should refresh results" do
      described_class.should_receive(:registration_type_uncached).twice.and_return("anything_non_nil")
      described_class.registration_type
      described_class.registration_type(true)
    end
  end

  it "#registered? when unregistered" do
    stub_registered_to_system(nil)
    expect(described_class.registered?).to be_false
  end

  context ".method_missing" do
    before do
      stub_registered_to_system(:rhn)
    end

    it "exists on the subclass" do
      expect(LinuxAdmin::RegistrationSystem.registered?).to be_true
    end

    it "does not exist on the subclass" do
      expect { LinuxAdmin::RegistrationSystem.organizations }.to raise_error(NotImplementedError)
    end

    it "is an unknown method" do
      expect { LinuxAdmin::RegistrationSystem.method_does_not_exist }.to be_true
    end
  end

  def stub_registered_to_system(*system)
    LinuxAdmin::SubscriptionManager.any_instance.stub(:registered? => (system.include?(:sm)))
    LinuxAdmin::Rhn.any_instance.stub(:registered? => (system.include?(:rhn)))
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
linux_admin-0.9.1 spec/registration_system_spec.rb
linux_admin-0.9.0 spec/registration_system_spec.rb
linux_admin-0.8.1 spec/registration_system_spec.rb
linux_admin-0.8.0 spec/registration_system_spec.rb
linux_admin-0.7.0 spec/registration_system_spec.rb
linux_admin-0.6.0 spec/registration_system_spec.rb
linux_admin-0.5.7 spec/registration_system_spec.rb
linux_admin-0.5.6 spec/registration_system_spec.rb
linux_admin-0.5.5 spec/registration_system_spec.rb
linux_admin-0.5.4 spec/registration_system_spec.rb
linux_admin-0.5.3 spec/registration_system_spec.rb
linux_admin-0.5.2 spec/registration_system_spec.rb
linux_admin-0.5.1 spec/registration_system_spec.rb
linux_admin-0.5.0 spec/registration_system_spec.rb
linux_admin-0.4.1 spec/registration_system_spec.rb