Merge branch 'fix_pin_quotes' into 1.4.x
[puppet-modules/puppetlabs-apt.git] / spec / acceptance / force_spec.rb
index 4f74ff01fd7a3b4a05aa418b1a5dc4941c27e24e..00572eae37d395929ab1970955e46b2a03305b2c 100644 (file)
@@ -1,13 +1,16 @@
 require 'spec_helper_acceptance'
 
-describe 'apt::force define' do
+codename = fact('lsbdistcodename')
+
+describe 'apt::force define', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
   context 'defaults' do
     it 'should work with no errors' do
       pp = <<-EOS
       include apt
-      apt::force { 'vim': }
+      apt::force { 'vim': release => false, }
       EOS
 
+      shell('apt-get remove -y vim')
       apply_manifest(pp, :catch_failures => true)
     end
 
@@ -16,4 +19,58 @@ describe 'apt::force define' do
     end
   end
 
+  context 'release' do
+    it 'should work with no errors' do
+      pp = <<-EOS
+      include apt
+      apt::force { 'vim': release => '#{codename}' }
+      EOS
+
+      shell('apt-get remove -y vim')
+      apply_manifest(pp, :catch_failures => true) do |r|
+        expect(r.stdout).to match(/apt-get -y -t #{codename} install vim/)
+      end
+    end
+
+    describe package('vim') do
+      it { should be_installed }
+    end
+  end
+
+  context 'version' do
+    it 'should work with no errors' do
+      pp = <<-EOS
+      include apt
+      apt::force { 'vim': version => '1.1.1', release => false, }
+      EOS
+
+      shell('apt-get remove -y vim')
+      apply_manifest(pp, :catch_failures => false) do |r|
+        expect(r.stdout).to match(/apt-get -y  install vim=1.1.1/)
+      end
+    end
+
+    describe package('vim') do
+      it { should_not be_installed }
+    end
+  end
+
+  context 'timeout' do
+    it 'should work with no errors' do
+      pp = <<-EOS
+      include apt
+      apt::force { 'vim': release => false, timeout => '1' }
+      EOS
+
+      shell('apt-get clean')
+      apply_manifest(pp, :expect_failures => true) do |r|
+        expect(r.stderr).to match(/Error: Command exceeded timeout/)
+      end
+    end
+
+    describe package('vim') do
+      it { should_not be_installed }
+    end
+  end
+
 end