ruby_spec.rb 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. require 'spec_helper'
  2. require 'puppet'
  3. provider_class = Puppet::Type.type(:ini_subsetting).provider(:ruby)
  4. describe provider_class do
  5. include PuppetlabsSpec::Files
  6. let(:tmpfile) { tmpfilename("ini_setting_test") }
  7. let(:common_params) { {
  8. :title => 'ini_setting_ensure_present_test',
  9. :path => tmpfile,
  10. :section => '',
  11. :key_val_separator => '=',
  12. :setting => 'JAVA_ARGS',
  13. } }
  14. def validate_file(expected_content,tmpfile = tmpfile)
  15. File.read(tmpfile).should == expected_content
  16. end
  17. before :each do
  18. File.open(tmpfile, 'w') do |fh|
  19. fh.write(orig_content)
  20. end
  21. end
  22. context "when ensuring that a subsetting is present" do
  23. let(:orig_content) {
  24. <<-EOS
  25. JAVA_ARGS="-Xmx192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof"
  26. EOS
  27. }
  28. it "should add a missing subsetting" do
  29. resource = Puppet::Type::Ini_subsetting.new(common_params.merge(
  30. :subsetting => '-Xms', :value => '128m'))
  31. provider = described_class.new(resource)
  32. provider.exists?.should be_nil
  33. provider.create
  34. validate_file(<<-EOS
  35. JAVA_ARGS="-Xmx192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof -Xms128m"
  36. EOS
  37. )
  38. end
  39. it "should remove an existing subsetting" do
  40. resource = Puppet::Type::Ini_subsetting.new(common_params.merge(
  41. :subsetting => '-Xmx'))
  42. provider = described_class.new(resource)
  43. provider.exists?.should == "192m"
  44. provider.destroy
  45. validate_file(<<-EOS
  46. JAVA_ARGS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof"
  47. EOS
  48. )
  49. end
  50. it "should modify an existing subsetting" do
  51. resource = Puppet::Type::Ini_subsetting.new(common_params.merge(
  52. :subsetting => '-Xmx', :value => '256m'))
  53. provider = described_class.new(resource)
  54. provider.exists?.should == "192m"
  55. provider.value=('256m')
  56. validate_file(<<-EOS
  57. JAVA_ARGS="-Xmx256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/pe-puppetdb/puppetdb-oom.hprof"
  58. EOS
  59. )
  60. end
  61. end
  62. end