Sha256: 6fdae9be688e691d19592fc850ef48d58006ac3982e714cae958e4792c860f58

Contents?: true

Size: 1.97 KB

Versions: 4

Compression:

Stored size: 1.97 KB

Contents

require 'helper'

class TestSettler < Test::Unit::TestCase
  load_schema
  
  def setup
    Setting.without_default_scope{ Setting.delete_all }
    Settler.source = File.dirname(__FILE__) + '/settler.yml'
    Settler.namespace = 'settings'    
    Settler.load!
  end
    
  def test_should_load_settings
    assert_equal ['google_analytics_key', 'search_algorithm'], Settler.settings
  end
  
  def test_should_find_setting_value
    assert_equal 'ferret', Settler[:search_algorithm]
    assert_equal 'ferret', Settler.search_algorithm.value
  end
  
  def test_should_get_validations_for_setting
    assert_equal({'presence' => true}, Settler.validations_for(:google_analytics_key))
    assert_equal({"inclusion"=>["ferret", "sphinx"]}, Settler.validations_for(:search_algorithm))
  end
  
  def test_should_not_create_instance
    assert_raise NoMethodError do 
      Settler.new
    end
  end
  
  def test_should_report_or_raise_missing    
    Settler.report_missing = true    
    Settler.raise_missing = true
    
    assert_raise RuntimeError do
      Settler.missing_setting 
    end      
  end
  
  def test_should_not_destroy_undeletable_setting
    assert !Settler.google_analytics_key.destroy
    assert !Settler.google_analytics_key.deleted?
  end
  
  def test_should_destroy_setting
    deletable_setting = Settler.search_algorithm
    assert deletable_setting.deletable?
    assert deletable_setting.destroy
    assert_equal true, deletable_setting.deleted?
    Settler.load!
    assert_nil Settler.search_algorithm
  end
  
  def test_should_not_update_uneditable_setting
    uneditable_setting = Settler.search_algorithm
    assert !uneditable_setting.update_attributes(:value => 'new_value')
    assert_equal 'ferret', Settler[:search_algorithm]
  end
  
  def test_should_update_editable_setting
    editable_setting = Settler.google_analytics_key
    assert editable_setting.update_attributes(:value => 'new_value')
    assert_equal 'new_value', Settler[:google_analytics_key]
  end  
  
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
settler-1.0.3 test/test_settler.rb
settler-1.0.2 test/test_settler.rb
settler-1.0.1 test/test_settler.rb
settler-1.0.0 test/test_settler.rb