+ it 'fails' do
+ expect { subject.call } .to raise_error(%r{does not match})
+ end
+ end
+
+ context 'domain end with dot' do
+ let(:params) do
+ {
+ server: 'pgp.mit.edu.',
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call } .to raise_error(%r{does not match})
+ end
+ end
+ context 'exceed character url' do
+ let :params do
+ {
+ server: 'hkp://pgpiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii.mit.edu',
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{does not match})
+ end
+ end
+ context 'incorrect port number url' do
+ let :params do
+ {
+ server: 'hkp://pgp.mit.edu:8008080',
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{does not match})
+ end
+ end
+ context 'incorrect protocol for url' do
+ let :params do
+ {
+ server: 'abc://pgp.mit.edu:80',
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{does not match})
+ end
+ end
+ context 'missing port number url' do
+ let :params do
+ {
+ server: 'hkp://pgp.mit.edu:',
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{does not match})
+ end
+ end
+ context 'url ending with a dot' do
+ let :params do
+ {
+ server: 'hkp://pgp.mit.edu.',
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{does not match})
+ end
+ end
+ context 'url begin with a dash' do
+ let(:params) do
+ {
+ server: 'hkp://-pgp.mit.edu',
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{does not match})
+ end
+ end
+ context 'invalid key' do
+ let :title do
+ 'Out of rum. Why? Why are we out of rum?'
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{does not match})
+ end
+ end
+
+ context 'invalid source' do
+ let :params do
+ {
+ source: 'afp://puppetlabs.com/key.gpg',
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{does not match})
+ end
+ end
+
+ context 'invalid content' do
+ let :params do
+ {
+ content: [],
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{expects a})
+ end
+ end
+
+ context 'invalid server' do
+ let :params do
+ {
+ server: 'two bottles of rum',
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{does not match})
+ end
+ end
+
+ context 'invalid options' do
+ let :params do
+ {
+ options: {},
+ }
+ end
+
+ it 'fails' do
+ expect { subject.call }.to raise_error(%r{expects a})
+ end
+ end
+
+ context 'invalid ensure' do
+ %w[foo aabsent absenta apresent presenta].each do |param|
+ let :params do
+ {
+ ensure: param,
+ }