File: rabbitmq_cli_spec.rb

package info (click to toggle)
puppet-module-puppetlabs-rabbitmq 8.5.0-10
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,192 kB
  • sloc: ruby: 5,227; sh: 10; makefile: 4
file content (37 lines) | stat: -rw-r--r-- 1,418 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
require 'spec_helper'

require 'puppet/provider/rabbitmq_cli'

provider_class = Puppet::Provider::RabbitmqCli
describe provider_class do
  before do
    # Clear the cached version before each test
    provider_class.remove_instance_variable(:@rabbitmq_version) \
      if provider_class.instance_variable_defined?(:@rabbitmq_version)
  end

  it 'gets the RabbitMQ version' do
    provider_class.expects(:rabbitmqctl).with('-q', 'status').returns '{rabbit,"RabbitMQ","3.1.5"}'
    expect(provider_class.rabbitmq_version).to eq('3.1.5')
  end

  it 'caches the RabbitMQ version' do
    provider_class.expects(:rabbitmqctl).with('-q', 'status').returns '{rabbit,"RabbitMQ","3.7.10"}'
    v1 = provider_class.rabbitmq_version

    # No second expects for rabbitmqctl as it shouldn't be called again
    expect(provider_class.rabbitmq_version).to eq(v1)
  end

  it 'uses correct list options with RabbitMQ < 3.7.9' do
    provider_class.expects(:rabbitmq_version).returns '3.7.8'
    provider_class.expects(:rabbitmqctl).with('list_vhost', '-q').returns ''
    expect(provider_class.rabbitmqctl_list('vhost')).to eq('')
  end

  it 'uses correct list options with RabbitMQ >= 3.7.9' do
    provider_class.expects(:rabbitmq_version).returns '3.7.10'
    provider_class.expects(:rabbitmqctl).with('list_vhost', '-q', '--no-table-headers').returns ''
    expect(provider_class.rabbitmqctl_list('vhost')).to eq('')
  end
end