describe command('yum repolist') do
  its('stdout') { should include 'dockerrepo' }
  its('stdout') { should include 'Yarn Repository' }
end

packages = %w(
  ant
  docker-engine
  memcached
  unzip
  yarn
  zip
)
# Yarn package requires nodejs installed
packages.each do |package|
  describe package(package) do
    it { should be_installed }
  end
end

describe service('memcached') do
  it { should be_enabled }
  it { should be_running }
end

describe service('docker') do
  it { should be_enabled }
  it { should be_running }
end

# Restart action fails on docker service (in case docker in docker), skip this check for now
#
# describe user('devorch') do
#   its('groups') { should include 'docker' }
# end

users = %w(devorch apache deploy)
users.each do |user_name|
  describe user user_name do
    its('groups') { should include 'webdev' }
  end
end

describe file('/etc/httpd/mods-available/proxy.load') do
  its('content') { should eq 'LoadModule proxy_module /usr/lib64/httpd/modules/mod_proxy.so' }
end
describe file('/etc/httpd/mods-available/proxy_http.load') do
  its('content') { should eq 'LoadModule proxy_http_module /usr/lib64/httpd/modules/mod_proxy_http.so' }
end

describe file('/etc/httpd/mods-available/ssl.load') do
  its('content') { should eq 'LoadModule ssl_module /usr/lib64/httpd/modules/mod_ssl.so' }
end

attribute_file = '/tmp/kitchen/node_attributes.json'
if file(attribute_file).exist?
  node = json(attribute_file).params

  apache_confs = %w(
    dev
    orchard
  )
  apache_dir = node['default']['apache']['dir']
  conf_path = "#{apache_dir}/conf-available"
  apache_confs.each do |conf_name|
    # Check only if such file exists
    describe file "#{conf_path}/#{conf_name}.conf" do
      it { should exist }
    end
  end

  # Ensure the default vhost is disabled
  %w(default default.conf 000-default 000-default.conf).each do |site|
    describe file "#{apache_dir}/sites-enabled/#{site}" do
      it { should_not exist }
    end
  end

else
  puts "File #{attribute_file} does not exist, skiping attribute-depending checks"
end
