summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSalim Alam <salam@chef.io>2016-01-21 11:11:06 -0800
committerSalim Alam <salam@chef.io>2016-01-21 11:11:06 -0800
commitc53d73f77c8ca93491363bcfee70e1b87e5edccc (patch)
treebb92179783885680c1c480a621086cc88a49269c
parent1e746d158f00859933bf3cd0e2bedc0768c1e727 (diff)
parent3dcc169d88879851065a04a94bea27a48192a2a6 (diff)
downloadchef-c53d73f77c8ca93491363bcfee70e1b87e5edccc.tar.gz
Merge pull request #4436 from chef/salam/windows-service-test
Salam/windows service test
-rw-r--r--acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb1
-rw-r--r--acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb3
-rw-r--r--acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb3
-rw-r--r--acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb3
-rw-r--r--acceptance/windows-service/.kitchen.yml26
-rw-r--r--acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb58
6 files changed, 94 insertions, 0 deletions
diff --git a/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb b/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb
new file mode 100644
index 0000000000..4c7c42d9bd
--- /dev/null
+++ b/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb
@@ -0,0 +1 @@
+name 'acceptance-cookbook'
diff --git a/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb b/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb
new file mode 100644
index 0000000000..f226ea2d10
--- /dev/null
+++ b/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb
@@ -0,0 +1,3 @@
+execute 'bundle exec kitchen destroy' do
+ cwd node['chef-acceptance']['suite-dir']
+end
diff --git a/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb b/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb
new file mode 100644
index 0000000000..2763aba70c
--- /dev/null
+++ b/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb
@@ -0,0 +1,3 @@
+execute 'bundle exec kitchen converge' do
+ cwd node['chef-acceptance']['suite-dir']
+end
diff --git a/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb b/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb
new file mode 100644
index 0000000000..c0b67bf500
--- /dev/null
+++ b/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb
@@ -0,0 +1,3 @@
+execute 'bundle exec kitchen verify' do
+ cwd node['chef-acceptance']['suite-dir']
+end
diff --git a/acceptance/windows-service/.kitchen.yml b/acceptance/windows-service/.kitchen.yml
new file mode 100644
index 0000000000..4f269f9aa9
--- /dev/null
+++ b/acceptance/windows-service/.kitchen.yml
@@ -0,0 +1,26 @@
+driver:
+ name: vagrant
+ forward_agent: yes
+ customize:
+ cpus: 2
+ memory: 1024
+
+provisioner:
+ name: chef_zero
+
+verifier:
+ name: inspec
+
+platforms:
+ - name: windows-server-2012r2-standard
+ driver:
+ box: chef/windows-server-2012r2-standard # private
+ run_list:
+
+suites:
+ - name: chef-windows-service
+ provisioner:
+ product_name: chef
+ product_version: latest
+ channel: current
+ run_list:
diff --git a/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb b/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb
new file mode 100644
index 0000000000..ec90ac083b
--- /dev/null
+++ b/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb
@@ -0,0 +1,58 @@
+only_if do
+ os["family"] == "windows"
+end
+
+describe command("chef-service-manager") do
+ it { should exist }
+ its("exit_status") { should eq 0 }
+end
+
+describe service("chef-client") do
+ it { should_not be_enabled }
+ it { should_not be_installed }
+ it { should_not be_running }
+end
+
+describe command("chef-service-manager -a install") do
+ its("exit_status") { should eq 0 }
+ its(:stdout) { should match /Service 'chef-client' has successfully been installed./}
+end
+
+describe service("chef-client") do
+ it { should be_enabled }
+ it { should be_installed }
+ it { should_not be_running }
+end
+
+describe command("chef-service-manager -a start") do
+ its("exit_status") { should eq 0 }
+ its(:stdout) { should match /Service 'chef-client' is now 'running'/}
+end
+
+describe service("chef-client") do
+ it { should be_enabled }
+ it { should be_installed }
+ it { should be_running }
+end
+
+describe command("chef-service-manager -a stop") do
+ its("exit_status") { should eq 0 }
+ its(:stdout) { should match /Service 'chef-client' is now 'stopped'/}
+end
+
+describe service("chef-client") do
+ it { should be_enabled }
+ it { should be_installed }
+ it { should_not be_running }
+end
+
+describe command("chef-service-manager -a uninstall") do
+ its("exit_status") { should eq 0 }
+ its(:stdout) { should match /Service chef-client deleted/}
+end
+
+describe service("chef-client") do
+ it { should_not be_enabled }
+ it { should_not be_installed }
+ it { should_not be_running }
+end