1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#! /usr/bin/env ruby
require 'spec_helper'
describe Puppet::Type.type(:sshkey) do
it "uses :name as its namevar" do
expect(described_class.key_attributes).to eq [:name]
end
describe "when validating attributes" do
[:name, :provider].each do |param|
it "has a #{param} parameter" do
expect(described_class.attrtype(param)).to eq :param
end
end
[:host_aliases, :ensure, :key, :type].each do |property|
it "has a #{property} property" do
expect(described_class.attrtype(property)).to eq :property
end
end
end
describe "when validating values" do
[
:'ssh-dss', :dsa,
:'ssh-rsa', :rsa,
:'ecdsa-sha2-nistp256',
:'ecdsa-sha2-nistp384',
:'ecdsa-sha2-nistp521',
:'ssh-ed25519', :ed25519,
].each do |keytype|
it "supports #{keytype} as a type value" do
described_class.new(:name => "foo", :type => keytype)
end
end
it "aliases :rsa to :ssh-rsa" do
key = described_class.new(:name => "foo", :type => :rsa)
expect(key.should(:type)).to eq :'ssh-rsa'
end
it "aliases :dsa to :ssh-dss" do
key = described_class.new(:name => "foo", :type => :dsa)
expect(key.should(:type)).to eq :'ssh-dss'
end
it "doesn't support values other than ssh-dss, ssh-rsa, dsa, rsa for type" do
expect {
described_class.new(:name => "whev", :type => :'ssh-dsa')
}.to raise_error(Puppet::Error, /Invalid value.*ssh-dsa/)
end
it "accepts one host_alias" do
described_class.new(:name => "foo", :host_aliases => 'foo.bar.tld')
end
it "accepts multiple host_aliases as an array" do
described_class.new(:name => "foo", :host_aliases => ['foo.bar.tld','10.0.9.9'])
end
it "doesn't accept spaces in any host_alias" do
expect {
described_class.new(:name => "foo", :host_aliases => ['foo.bar.tld','foo bar'])
}.to raise_error(Puppet::Error, /cannot include whitespace/)
end
it "doesn't accept aliases in the resourcename" do
expect {
described_class.new(:name => 'host,host.domain,ip')
}.to raise_error(Puppet::Error, /No comma in resourcename/)
end
end
end
|