Addressing Rubocop Errors
[puppet-modules/puppetlabs-apt.git] / spec / unit / puppet / type / apt_key_spec.rb
index c29f82b08862529c3e328cde6734bca4cff3c927..a25d8271e31886ac67c990295ae4189598130ef0 100644 (file)
 require 'spec_helper'
 require 'puppet'
 
-describe Puppet::Type::type(:apt_key) do
-  context 'only namevar 32bit key id' do
-    let(:resource) { Puppet::Type.type(:apt_key).new(
-      :id => '4BD6EC30'
-    )}
+describe Puppet::Type.type(:apt_key) do
+  context 'with only namevar 32bit key id' do
+    let(:resource) do
+      Puppet::Type.type(:apt_key).new(
+        id: 'EF8D349F',
+      )
+    end
+
     it 'id is set' do
-      resource[:id].should eq '4BD6EC30'
+      expect(resource[:id]).to eq 'EF8D349F'
     end
 
     it 'name is set to id' do
-      resource[:name].should eq '4BD6EC30'
+      expect(resource[:name]).to eq 'EF8D349F'
     end
 
     it 'keyserver is default' do
-      resource[:server].should eq :'keyserver.ubuntu.com'
+      expect(resource[:server]).to eq :'keyserver.ubuntu.com'
     end
 
     it 'source is not set' do
-      resource[:source].should eq nil
+      expect(resource[:source]).to eq nil
     end
 
     it 'content is not set' do
-      resource[:content].should eq nil
+      expect(resource[:content]).to eq nil
     end
   end
 
   context 'with a lowercase 32bit key id' do
-    let(:resource) { Puppet::Type.type(:apt_key).new(
-      :id => '4bd6ec30'
-    )}
+    let(:resource) do
+      Puppet::Type.type(:apt_key).new(
+        id: 'ef8d349f',
+      )
+    end
+
     it 'id is set' do
-      resource[:id].should eq '4BD6EC30'
+      expect(resource[:id]).to eq 'EF8D349F'
     end
   end
 
   context 'with a 64bit key id' do
-    let(:resource) { Puppet::Type.type(:apt_key).new(
-      :id => 'FFFFFFFF4BD6EC30'
-    )}
+    let(:resource) do
+      Puppet::Type.type(:apt_key).new(
+        id: 'FFFFFFFFEF8D349F',
+      )
+    end
+
     it 'id is set' do
-      resource[:id].should eq '4BD6EC30'
+      expect(resource[:id]).to eq 'FFFFFFFFEF8D349F'
     end
   end
 
   context 'with a 0x formatted key id' do
-    let(:resource) { Puppet::Type.type(:apt_key).new(
-      :id => '0x4BD6EC30'
-    )}
+    let(:resource) do
+      Puppet::Type.type(:apt_key).new(
+        id: '0xEF8D349F',
+      )
+    end
+
     it 'id is set' do
-      resource[:id].should eq '4BD6EC30'
+      expect(resource[:id]).to eq 'EF8D349F'
     end
   end
 
   context 'with a 0x formatted lowercase key id' do
-    let(:resource) { Puppet::Type.type(:apt_key).new(
-      :id => '0x4bd6ec30'
-    )}
+    let(:resource) do
+      Puppet::Type.type(:apt_key).new(
+        id: '0xef8d349f',
+      )
+    end
+
     it 'id is set' do
-      resource[:id].should eq '4BD6EC30'
+      expect(resource[:id]).to eq 'EF8D349F'
     end
   end
 
   context 'with a 0x formatted 64bit key id' do
-    let(:resource) { Puppet::Type.type(:apt_key).new(
-      :id => '0xFFFFFFFF4BD6EC30'
-    )}
+    let(:resource) do
+      Puppet::Type.type(:apt_key).new(
+        id: '0xFFFFFFFFEF8D349F',
+      )
+    end
+
     it 'id is set' do
-      resource[:id].should eq '4BD6EC30'
+      expect(resource[:id]).to eq 'FFFFFFFFEF8D349F'
     end
   end
 
   context 'with source' do
-    let(:resource) { Puppet::Type.type(:apt_key).new(
-      :id => '4BD6EC30',
-      :source => 'http://apt.puppetlabs.com/pubkey.gpg'
-    )}
+    let(:resource) do
+      Puppet::Type.type(:apt_key).new(
+        id: 'EF8D349F',
+        source: 'http://apt.puppetlabs.com/pubkey.gpg',
+      )
+    end
 
     it 'source is set to the URL' do
-      resource[:source].should eq 'http://apt.puppetlabs.com/pubkey.gpg'
+      expect(resource[:source]).to eq 'http://apt.puppetlabs.com/pubkey.gpg'
     end
   end
-  
+
   context 'with content' do
-    let(:resource) { Puppet::Type.type(:apt_key).new(
-      :id => '4BD6EC30',
-      :content => 'http://apt.puppetlabs.com/pubkey.gpg'
-    )}
+    let(:resource) do
+      Puppet::Type.type(:apt_key).new(
+        id: 'EF8D349F',
+        content: 'http://apt.puppetlabs.com/pubkey.gpg',
+      )
+    end
 
     it 'content is set to the string' do
-      resource[:content].should eq 'http://apt.puppetlabs.com/pubkey.gpg'
+      expect(resource[:content]).to eq 'http://apt.puppetlabs.com/pubkey.gpg'
     end
   end
-  
+
   context 'with keyserver' do
-    let(:resource) { Puppet::Type.type(:apt_key).new(
-      :id => '4BD6EC30',
-      :server => 'http://keyring.debian.org'
-    )}
+    let(:resource) do
+      Puppet::Type.type(:apt_key).new(
+        id: 'EF8D349F',
+        server: 'http://keyring.debian.org',
+      )
+    end
 
     it 'keyserver is set to Debian' do
-      resource[:server].should eq 'http://keyring.debian.org'
+      expect(resource[:server]).to eq 'http://keyring.debian.org'
     end
   end
 
-  context 'validation' do
+  context 'with validation' do
     it 'raises an error if content and source are set' do
-      expect { Puppet::Type.type(:apt_key).new(
-        :id      => '4BD6EC30',
-        :source  => 'http://apt.puppetlabs.com/pubkey.gpg',
-        :content => 'Completely invalid as a GPG key'
-      )}.to raise_error(/content and source are mutually exclusive/)
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
+                                        source: 'http://apt.puppetlabs.com/pubkey.gpg',
+                                        content: 'Completely invalid as a GPG key')
+      }.to raise_error(%r{content and source are mutually exclusive})
     end
 
     it 'raises an error if a weird length key is used' do
-      expect { Puppet::Type.type(:apt_key).new(
-        :id      => 'F4BD6EC30',
-        :source  => 'http://apt.puppetlabs.com/pubkey.gpg',
-        :content => 'Completely invalid as a GPG key'
-      )}.to raise_error(/Valid values match/)
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'FEF8D349F',
+                                        source: 'http://apt.puppetlabs.com/pubkey.gpg',
+                                        content: 'Completely invalid as a GPG key')
+      }.to raise_error(%r{Valid values match})
     end
 
     it 'raises an error when an invalid URI scheme is used in source' do
-      expect { Puppet::Type.type(:apt_key).new(
-        :id      => '4BD6EC30',
-        :source  => 'hkp://pgp.mit.edu'
-      )}.to raise_error(/Valid values match/)
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
+                                        source: 'hkp://pgp.mit.edu')
+      }.to raise_error(%r{Valid values match})
     end
 
     it 'allows the http URI scheme in source' do
-      expect { Puppet::Type.type(:apt_key).new(
-        :id      => '4BD6EC30',
-        :source  => 'http://pgp.mit.edu'
-      )}.to_not raise_error
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
+                                        source: 'http://pgp.mit.edu')
+      }.not_to raise_error
+    end
+
+    it 'allows the http URI with username and password' do
+      expect {
+        Puppet::Type.type(:apt_key).new(id: '4BD6EC30',
+                                        source: 'http://testme:Password2@pgp.mit.edu')
+      }.not_to raise_error
     end
 
     it 'allows the https URI scheme in source' do
-      expect { Puppet::Type.type(:apt_key).new(
-        :id      => '4BD6EC30',
-        :source  => 'https://pgp.mit.edu'
-      )}.to_not raise_error
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
+                                        source: 'https://pgp.mit.edu')
+      }.not_to raise_error
+    end
+
+    it 'allows the https URI with username and password' do
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
+                                        source: 'https://testme:Password2@pgp.mit.edu')
+      }.not_to raise_error
     end
 
     it 'allows the ftp URI scheme in source' do
-      expect { Puppet::Type.type(:apt_key).new(
-        :id      => '4BD6EC30',
-        :source  => 'ftp://pgp.mit.edu'
-      )}.to_not raise_error
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
+                                        source: 'ftp://pgp.mit.edu')
+      }.not_to raise_error
     end
 
     it 'allows an absolute path in source' do
-      expect { Puppet::Type.type(:apt_key).new(
-        :id      => '4BD6EC30',
-        :source  => '/path/to/a/file'
-      )}.to_not raise_error
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
+                                        source: '/path/to/a/file')
+      }.not_to raise_error
+    end
+
+    it 'allows 5-digit ports' do
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
+                                        source: 'http://pgp.mit.edu:12345/key')
+      }.not_to raise_error
+    end
+
+    it 'allows 5-digit ports when using key servers' do
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
+                                        server: 'http://pgp.mit.edu:12345')
+      }.not_to raise_error
     end
   end
 end