require 'spec_helper' describe 'resource' do after :all do # enabling the removal slows down tests, but from time to time we may need to FileUtils.rm_rf(fixture_modules_path) if ENV['RETROSPEC_CLEAN_UP_TEST_MODULES'] =~ /true/ end before :all do # enabling the removal of real modules slows down tests, but from time to time we may need to FileUtils.rm_rf(fixture_modules_path) if ENV['RETROSPEC_CLEAN_UP_TEST_MODULES'] =~ /true/ @path = File.join(fixture_modules_path, 'tomcat') end before :each do clean_up_spec_dir(@path) end describe 'one resource module' do let(:instance) { Utilities::PuppetModule.send :new } before :each do my_path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'one_resource_module')) @m = instance @m.module_path = my_path @m.create_tmp_module_path(my_path) end it 'should initialize with one resource' do r = Resource.all(@m.types.find { |x| x.name == 'one_resource' }) expect(r.length).to eq(1) expect(r[0].parameters).to eq('ensure' => 'present') expect(r[0].title).to eq('/tmp/test') expect(r[0].type).to eq('file') end it 'should initialize with two resources' do test_type = @m.types.find { |x| x.name == 'one_resource::another_resource' } VariableStore.populate(test_type) r = Resource.all(test_type) expect(r.length).to eq(2) expect(r[0].parameters).to eq('ensure' => 'present') expect(r[0].title).to eq('/tmp/test2') expect(r[0].type).to eq('file') expect(r[1].parameters).to eq('ensure' => 'present', 'content' => '/tmp/test3/test3183/oohhhh') expect(r[1].title).to eq('/tmp/test3') expect(r[1].type).to eq('file') end it 'should return resources' do test_type = @m.types.find { |x| x.name == 'one_resource::another_resource' } expect(Resource.all(test_type.code).length).to eq(2) end end describe 'zero module' do let(:instance) { Utilities::PuppetModule.send :new } it 'can process an empty class' do my_path = File.expand_path(File.join('spec', 'fixtures', 'fixture_modules', 'zero_resource_module')) m = instance m.module_path = my_path m.create_tmp_module_path(my_path) test_type = m.types.find { |x| x.name == 'empty_class' } r = Resource.all(test_type) expect(r.size).to eq(0) end end end