summaryrefslogtreecommitdiff
path: root/spec/defines/openvpn_server_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/defines/openvpn_server_spec.rb')
-rw-r--r--spec/defines/openvpn_server_spec.rb109
1 files changed, 109 insertions, 0 deletions
diff --git a/spec/defines/openvpn_server_spec.rb b/spec/defines/openvpn_server_spec.rb
new file mode 100644
index 0000000..1032302
--- /dev/null
+++ b/spec/defines/openvpn_server_spec.rb
@@ -0,0 +1,109 @@
+require 'spec_helper'
+
+describe 'openvpn::server', :type => :define do
+
+ let(:title) { 'test_server' }
+ let(:params) { {
+ 'country' => 'CO',
+ 'province' => 'ST',
+ 'city' => 'Some City',
+ 'organization' => 'example.org',
+ 'email' => 'testemail@example.org'
+ } }
+
+ let (:facts) { { :concat_basedir => '/var/lib/puppet/concat' } }
+
+ # Files associated with a server config
+ it { should contain_file('/etc/openvpn/test_server').with('ensure' => 'directory')}
+ it { should contain_file('/etc/openvpn/test_server/client-configs').with('ensure' => 'directory')}
+ it { should contain_file('/etc/openvpn/test_server/download-configs').with('ensure' => 'directory')}
+ it { should contain_file('/etc/openvpn/test_server/easy-rsa/vars')}
+ it { should contain_file('/etc/openvpn/test_server/easy-rsa/openssl.cnf')}
+ it { should contain_file('/etc/openvpn/test_server/keys').with(
+ 'ensure' => 'link',
+ 'target' => '/etc/openvpn/test_server/easy-rsa/keys'
+ )}
+
+ it { should contain_concat__fragment('openvpn.default.autostart.test_server').with(
+ 'content' => "AUTOSTART=\"$AUTOSTART test_server\"\n",
+ 'target' => '/etc/default/openvpn'
+ )}
+
+ # Execs to working with certificates
+ it { should contain_exec('copy easy-rsa to openvpn config folder test_server').with(
+ 'command' => '/bin/cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/test_server/easy-rsa'
+ )}
+ it { should contain_exec('generate dh param test_server') }
+ it { should contain_exec('initca test_server') }
+ it { should contain_exec('generate server cert test_server') }
+
+ # Options that should be set
+ it { should contain_openvpn__option('client-config-dir test_server').with(
+ 'server' => 'test_server',
+ 'key' => 'client-config-dir',
+ 'value' => '/etc/openvpn/test_server/client-configs'
+ )}
+ it { should contain_openvpn__option('mode test_server').with(
+ 'server' => 'test_server',
+ 'key' => 'mode',
+ 'value' => 'server'
+ )}
+ it { should contain_openvpn__option('ca test_server').with(
+ 'server' => 'test_server',
+ 'key' => 'ca',
+ 'value' => '/etc/openvpn/test_server/keys/ca.crt'
+ )}
+ it { should contain_openvpn__option('cert test_server').with(
+ 'server' => 'test_server',
+ 'key' => 'cert',
+ 'value' => '/etc/openvpn/test_server/keys/server.crt'
+ )}
+ it { should contain_openvpn__option('key test_server').with(
+ 'server' => 'test_server',
+ 'key' => 'key',
+ 'value' => '/etc/openvpn/test_server/keys/server.key'
+ )}
+ it { should contain_openvpn__option('dh test_server').with(
+ 'server' => 'test_server',
+ 'key' => 'dh',
+ 'value' => '/etc/openvpn/test_server/keys/dh1024.pem'
+ )}
+ it { should contain_openvpn__option('proto test_server').with(
+ 'server' => 'test_server',
+ 'key' => 'proto',
+ 'value' => 'tcp'
+ )}
+ it { should contain_openvpn__option('comp-lzo test_server').with(
+ 'server' => 'test_server',
+ 'key' => 'comp-lzo'
+ )}
+
+ context "when RedHat based machine" do
+ let(:facts) { { :osfamily => 'RedHat', :concat_basedir => '/var/lib/puppet/concat' } }
+
+ it { should contain_file('/etc/openvpn/test_server/easy-rsa/openssl.cnf').with(
+ 'ensure' => 'link',
+ 'target' => '/etc/openvpn/test_server/easy-rsa/openssl-1.0.0.cnf'
+ )}
+
+ it { should contain_exec('copy easy-rsa to openvpn config folder test_server').with(
+ 'command' => '/bin/cp -r /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0 /etc/openvpn/test_server/easy-rsa'
+ )}
+
+ end
+
+ context "when Debian based machine" do
+ let(:facts) { { :osfamily => 'Debian', :concat_basedir => '/var/lib/puppet/concat' } }
+
+ it { should contain_file('/etc/openvpn/test_server/easy-rsa/openssl.cnf').with(
+ 'ensure' => 'link',
+ 'target' => '/etc/openvpn/test_server/easy-rsa/openssl-1.0.0.cnf'
+ )}
+
+ it { should contain_exec('copy easy-rsa to openvpn config folder test_server').with(
+ 'command' => '/bin/cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/test_server/easy-rsa'
+ )}
+
+ end
+
+end