diff --git a/spec/support/shared_behaviour.rb b/spec/support/shared_behaviour.rb index 08e08ca..9f4e455 100644 --- a/spec/support/shared_behaviour.rb +++ b/spec/support/shared_behaviour.rb @@ -1,107 +1,106 @@ -# rubocop:disable RSpec/MultipleExpectations require 'spec_helper' require 'tmpdir' RSpec.shared_examples 'an archive provider' do |provider_class| describe provider_class do let(:resource) do Puppet::Type::Archive.new(name: '/tmp/example.zip', source: 'http://home.lan/example.zip') end let(:provider) do provider_class.new(resource) end let(:zipfile) do File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'files', 'test.zip')) end it '#checksum?' do Dir.mktmpdir do |dir| resource[:path] = File.join(dir, resource[:filename]) FileUtils.cp(zipfile, resource[:path]) resource[:checksum] = '377ec712d7fdb7266221db3441e3af2055448ead' resource[:checksum_type] = :sha1 expect(provider.checksum?).to eq true resource[:checksum] = '557e2ebb67b35d1fddff18090b6bc26b' resource[:checksum_type] = :md5 expect(provider.checksum?).to eq true resource[:checksum] = '557e2ebb67b35d1fddff18090b6bc26b' resource[:checksum_type] = :sha1 expect(provider.checksum?).to eq false end end it '#extract' do skip 'jruby not supported' if defined? JRUBY_VERSION Dir.mktmpdir do |dir| resource[:path] = File.join(dir, resource[:filename]) extracted_file = File.join(dir, 'test') FileUtils.cp(zipfile, resource[:path]) resource[:extract] = :true resource[:creates] = extracted_file resource[:extract_path] = dir provider.extract expect(File.read(extracted_file)).to eq "hello world\n" end end it '#extracted?' do skip 'jruby not supported' if defined? JRUBY_VERSION Dir.mktmpdir do |dir| resource[:path] = File.join(dir, resource[:filename]) extracted_file = File.join(dir, 'test') FileUtils.cp(zipfile, resource[:path]) resource[:extract] = :true resource[:creates] = extracted_file resource[:extract_path] = dir expect(provider.extracted?).to eq false provider.extract expect(provider.extracted?).to eq true end end it '#cleanup' do skip 'jruby not supported' if defined? JRUBY_VERSION Dir.mktmpdir do |dir| resource[:path] = File.join(dir, resource[:filename]) extracted_file = File.join(dir, 'test') FileUtils.cp(zipfile, resource[:path]) resource[:extract] = :true resource[:cleanup] = :true resource[:creates] = extracted_file resource[:extract_path] = dir provider.extract provider.cleanup expect(File.exist?(resource[:path])).to eq false end end it '#create' do skip 'jruby not supported' if defined? JRUBY_VERSION Dir.mktmpdir do |dir| resource[:path] = File.join(dir, resource[:filename]) extracted_file = File.join(dir, 'test') FileUtils.cp(zipfile, resource[:path]) resource[:extract] = :true resource[:cleanup] = :true resource[:creates] = extracted_file resource[:extract_path] = dir provider.create expect(File.read(extracted_file)).to eq "hello world\n" expect(File.exist?(resource[:path])).to eq false end end end end