Skip to content

Commit

Permalink
Merge pull request #22 from adrienthebo/maint-correct_rspec_stubbing
Browse files Browse the repository at this point in the history
(maint) refactor keytool provider specs
  • Loading branch information
kfjohnson committed May 24, 2013
2 parents 2225221 + 05d3819 commit db4abdc
Showing 1 changed file with 36 additions and 37 deletions.
73 changes: 36 additions & 37 deletions spec/unit/puppet/provider/java_ks/keytool_spec.rb
Expand Up @@ -3,19 +3,33 @@

describe Puppet::Type.type(:java_ks).provider(:keytool) do

before do
@app_example_com = {
:title => 'app.example.com:/tmp/application.jks',
:name => 'app.example.com',
:target => '/tmp/application.jks',
:password => 'puppet',
:certificate => '/tmp/app.example.com.pem',
:private_key => '/tmp/private/app.example.com.pem',
:provider => described_class.name
let(:params) do
{
:title => 'app.example.com:/tmp/application.jks',
:name => 'app.example.com',
:target => '/tmp/application.jks',
:password => 'puppet',
:certificate => '/tmp/app.example.com.pem',
:private_key => '/tmp/private/app.example.com.pem',
:provider => described_class.name
}
end

let(:resource) do
Puppet::Type.type(:java_ks).new(params)
end

let(:provider) do
resource.provider
end

before do
provider.stubs(:command).with(:keytool).returns('mykeytool')
provider.stubs(:command).with(:openssl).returns('myopenssl')

provider.stubs(:command_keytool).returns 'mykeytool'
provider.stubs(:command_openssl).returns 'myopenssl'

tempfile = stub('tempfile', :class => Tempfile,
:write => true,
:flush => true,
Expand All @@ -25,18 +39,6 @@
Tempfile.stubs(:new).returns(tempfile)
end

let(:resource) do
Puppet::Type.type(:java_ks).new @app_example_com
end

let(:provider) do
resource.provider
end

let(:app_example_com) do
@app_example_com
end

describe 'when updating a certificate' do
it 'should call destroy and create' do
provider.expects(:destroy)
Expand All @@ -47,22 +49,21 @@

describe 'when importing a private key and certifcate' do
it 'should execute openssl and keytool with specific options' do
provider.expects(:run_command).with do |*args|
args[0] == [
provider.expects(:run_command).with([
'myopenssl', 'pkcs12', '-export', '-passout', 'stdin',
'-in', resource[:certificate],
'-inkey', resource[:private_key],
'-name', resource[:name]
]
end
provider.expects(:run_command).with do |*args|
args[0] == [
],
any_parameters
)
provider.expects(:run_command).with([
'mykeytool', '-importkeystore', '-srcstoretype', 'PKCS12',
'-destkeystore', resource[:target],
'-srckeystore', '/tmp/testing.stuff',
'-alias', resource[:name]
]
end
], any_parameters
)
provider.import_ks
end
end
Expand All @@ -76,28 +77,26 @@
it 'should call keytool with specific options if only certificate is provided' do
no_pk = resource.dup
no_pk.delete(:private_key)
provider.expects(:run_command).with do |*args|
args[0] == [
provider.expects(:run_command).with([
'mykeytool', '-importcert', '-noprompt',
'-alias', no_pk[:name],
'-file', no_pk[:certificate],
'-keystore', no_pk[:target]
]
end
], any_parameters
)
no_pk.provider.expects(:import_ks).never
no_pk.provider.create
end
end

describe 'when removing entries from keytool' do
it 'should execute keytool with a specific set of options' do
provider.expects(:run_command).with do |*args|
args[0] == [
provider.expects(:run_command).with([
'mykeytool', '-delete',
'-alias', resource[:name],
'-keystore', resource[:target]
]
end
], any_parameters
)
provider.destroy
end
end
Expand Down

0 comments on commit db4abdc

Please sign in to comment.