class MongoMapperTest::MachineWithInternationalizationTest
Public Instance Methods
setup()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1507 def setup I18n.backend = I18n::Backend::Simple.new # Initialize the backend StateMachine::Machine.new(new_model) I18n.backend.translate(:en, 'mongo_mapper.errors.messages.invalid_transition', :event => 'ignite', :value => 'idling') @model = new_model end
test_should_add_locale_to_beginning_of_load_path()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1663 def test_should_add_locale_to_beginning_of_load_path @original_load_path = I18n.load_path I18n.backend = I18n::Backend::Simple.new app_locale = File.dirname(__FILE__) + '/../../files/en.yml' default_locale = File.dirname(__FILE__) + '/../../../lib/state_machine/integrations/mongo_mapper/locale.rb' I18n.load_path = [app_locale] StateMachine::Machine.new(@model) assert_equal [default_locale, app_locale].map {|path| File.expand_path(path)}, I18n.load_path.map {|path| File.expand_path(path)} ensure I18n.load_path = @original_load_path end
test_should_allow_customized_error_key()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1532 def test_should_allow_customized_error_key I18n.backend.store_translations(:en, { :mongo_mapper => {:errors => {:messages => {:bad_transition => 'cannot %{event}'}}} }) machine = StateMachine::Machine.new(@model, :messages => {:invalid_transition => :bad_transition}) machine.state :parked, :idling record = @model.new(:state => 'idling') machine.invalidate(record, :state, :invalid_transition, [[:event, 'ignite']]) assert_equal ['State cannot ignite'], record.errors.full_messages end
test_should_allow_customized_error_string()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1546 def test_should_allow_customized_error_string machine = StateMachine::Machine.new(@model, :messages => {:invalid_transition => 'cannot %{event}'}) machine.state :parked, :idling record = @model.new(:state => 'idling') machine.invalidate(record, :state, :invalid_transition, [[:event, 'ignite']]) assert_equal ['State cannot ignite'], record.errors.full_messages end
test_should_allow_customized_event_key_scoped_to_class()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1621 def test_should_allow_customized_event_key_scoped_to_class I18n.backend.store_translations(:en, { :mongo_mapper => {:state_machines => {:'mongo_mapper_test/foo' => {:events => {:park => 'stop'}}}} }) machine = StateMachine::Machine.new(@model) machine.event :park assert_equal 'stop', machine.event(:park).human_name end
test_should_allow_customized_event_key_scoped_to_class_and_machine()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1610 def test_should_allow_customized_event_key_scoped_to_class_and_machine I18n.backend.store_translations(:en, { :mongo_mapper => {:state_machines => {:'mongo_mapper_test/foo' => {:state => {:events => {:park => 'stop'}}}}} }) machine = StateMachine::Machine.new(@model) machine.event :park assert_equal 'stop', machine.event(:park).human_name end
test_should_allow_customized_event_key_scoped_to_machine()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1632 def test_should_allow_customized_event_key_scoped_to_machine I18n.backend.store_translations(:en, { :mongo_mapper => {:state_machines => {:state => {:events => {:park => 'stop'}}}} }) machine = StateMachine::Machine.new(@model) machine.event :park assert_equal 'stop', machine.event(:park).human_name end
test_should_allow_customized_event_key_unscoped()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1643 def test_should_allow_customized_event_key_unscoped I18n.backend.store_translations(:en, { :mongo_mapper => {:state_machines => {:events => {:park => 'stop'}}} }) machine = StateMachine::Machine.new(@model) machine.event :park assert_equal 'stop', machine.event(:park).human_name end
test_should_allow_customized_state_key_scoped_to_class()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1567 def test_should_allow_customized_state_key_scoped_to_class I18n.backend.store_translations(:en, { :mongo_mapper => {:state_machines => {:'mongo_mapper_test/foo' => {:states => {:parked => 'shutdown'}}}} }) machine = StateMachine::Machine.new(@model) machine.state :parked assert_equal 'shutdown', machine.state(:parked).human_name end
test_should_allow_customized_state_key_scoped_to_class_and_machine()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1556 def test_should_allow_customized_state_key_scoped_to_class_and_machine I18n.backend.store_translations(:en, { :mongo_mapper => {:state_machines => {:'mongo_mapper_test/foo' => {:state => {:states => {:parked => 'shutdown'}}}}} }) machine = StateMachine::Machine.new(@model) machine.state :parked assert_equal 'shutdown', machine.state(:parked).human_name end
test_should_allow_customized_state_key_scoped_to_machine()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1578 def test_should_allow_customized_state_key_scoped_to_machine I18n.backend.store_translations(:en, { :mongo_mapper => {:state_machines => {:state => {:states => {:parked => 'shutdown'}}}} }) machine = StateMachine::Machine.new(@model) machine.state :parked assert_equal 'shutdown', machine.state(:parked).human_name end
test_should_allow_customized_state_key_unscoped()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1589 def test_should_allow_customized_state_key_unscoped I18n.backend.store_translations(:en, { :mongo_mapper => {:state_machines => {:states => {:parked => 'shutdown'}}} }) machine = StateMachine::Machine.new(@model) machine.state :parked assert_equal 'shutdown', machine.state(:parked).human_name end
test_should_only_add_locale_once_in_load_path()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1654 def test_should_only_add_locale_once_in_load_path assert_equal 1, I18n.load_path.select {|path| path =~ %r{mongo_mapper/locale\.rb$}}.length # Create another MongoMapper model that will triger the i18n feature new_model assert_equal 1, I18n.load_path.select {|path| path =~ %r{mongo_mapper/locale\.rb$}}.length end
test_should_prefer_other_locales_first()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1678 def test_should_prefer_other_locales_first @original_load_path = I18n.load_path I18n.backend = I18n::Backend::Simple.new I18n.load_path = [File.dirname(__FILE__) + '/../../files/en.yml'] machine = StateMachine::Machine.new(@model) machine.state :parked, :idling machine.event :ignite record = @model.new(:state => 'idling') machine.invalidate(record, :state, :invalid_transition, [[:event, 'ignite']]) assert_equal ['State cannot transition'], record.errors.full_messages ensure I18n.load_path = @original_load_path end
test_should_support_nil_state_key()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1600 def test_should_support_nil_state_key I18n.backend.store_translations(:en, { :mongo_mapper => {:state_machines => {:states => {:nil => 'empty'}}} }) machine = StateMachine::Machine.new(@model) assert_equal 'empty', machine.state(nil).human_name end
test_should_use_defaults()
click to toggle source
# File test/unit/integrations/mongo_mapper_test.rb, line 1517 def test_should_use_defaults I18n.backend.store_translations(:en, { :mongo_mapper => {:errors => {:messages => {:invalid_transition => 'cannot %{event}'}}} }) machine = StateMachine::Machine.new(@model) machine.state :parked, :idling machine.event :ignite record = @model.new(:state => 'idling') machine.invalidate(record, :state, :invalid_transition, [[:event, 'ignite']]) assert_equal ['State cannot ignite'], record.errors.full_messages end