+++ /dev/null
-# 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