Sha256: 2879495366386d87d9e5c2a88a175a3dc6225935175f252d654daaff6d3784e7

Contents?: true

Size: 1.74 KB

Versions: 14

Compression:

Stored size: 1.74 KB

Contents

require 'spec_helper'
require 'puppet/pops'

module BinderSpecModule
  def factory()
    Puppet::Pops::Binder::BindingsFactory
  end

  def injector(binder)
    Puppet::Pops::Binder::Injector.new(binder)
  end

  def binder()
    Puppet::Pops::Binder::Binder.new()
  end

  def test_layer_with_empty_bindings
    factory.named_layer('test-layer', factory.named_bindings('test').model)
  end
end

describe 'Binder' do
  include BinderSpecModule

  context 'when defining categories' do
    it 'redefinition is not allowed' do
      expect do
        b = binder()
        b.define_categories(factory.categories([]))
        b.define_categories(factory.categories([]))
      end.to raise_error(/Cannot redefine/)
    end
  end

  context 'when defining layers' do
    it 'they must be defined after categories' do
      expect do
        binder().define_layers(factory.layered_bindings(test_layer_with_empty_bindings))
      end.to raise_error(/Categories must be defined first/)
    end

    it 'redefinition is not allowed' do
      expect do
        b = binder()
        b.define_categories(factory.categories([]))
        b.define_layers(factory.layered_bindings(test_layer_with_empty_bindings))
        b.define_layers(factory.layered_bindings(test_layer_with_empty_bindings))
      end.to raise_error(/Cannot redefine its content/)
    end
  end

  context 'when defining categories and layers' do
    it 'a binder should report being configured when both categories and layers have been defined' do
      b = binder()
      b.configured?().should == false
      b.define_categories(factory.categories([]))
      b.configured?().should == false
      b.define_layers(factory.layered_bindings(test_layer_with_empty_bindings))
      b.configured?().should == true
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
puppet-3.4.3 spec/unit/pops/binder/binder_spec.rb
puppet-3.4.2 spec/unit/pops/binder/binder_spec.rb
puppet-3.4.1 spec/unit/pops/binder/binder_spec.rb
puppet-3.4.0 spec/unit/pops/binder/binder_spec.rb
puppet-3.4.0.rc2 spec/unit/pops/binder/binder_spec.rb
puppet-3.4.0.rc1 spec/unit/pops/binder/binder_spec.rb
puppet-3.3.2 spec/unit/pops/binder/binder_spec.rb
puppet-3.3.1 spec/unit/pops/binder/binder_spec.rb
puppet-3.3.1.rc3 spec/unit/pops/binder/binder_spec.rb
puppet-3.3.1.rc2 spec/unit/pops/binder/binder_spec.rb
puppet-3.3.1.rc1 spec/unit/pops/binder/binder_spec.rb
puppet-3.3.0 spec/unit/pops/binder/binder_spec.rb
puppet-3.3.0.rc3 spec/unit/pops/binder/binder_spec.rb
puppet-3.3.0.rc2 spec/unit/pops/binder/binder_spec.rb