PageRenderTime 46ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/test/unit/invalid_transition_test.rb

https://github.com/johnsonzes/state_machine
Ruby | 77 lines | 59 code | 18 blank | 0 comment | 0 complexity | 99d4bbf40416b0b0897d41c5c029c8b7 MD5 | raw file
  1. require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
  2. class InvalidTransitionTest < Test::Unit::TestCase
  3. def setup
  4. @klass = Class.new
  5. @machine = StateMachine::Machine.new(@klass)
  6. @state = @machine.state :parked
  7. @machine.event :ignite
  8. @object = @klass.new
  9. @object.state = 'parked'
  10. @invalid_transition = StateMachine::InvalidTransition.new(@object, @machine, :ignite)
  11. end
  12. def test_should_have_an_object
  13. assert_equal @object, @invalid_transition.object
  14. end
  15. def test_should_have_a_machine
  16. assert_equal @machine, @invalid_transition.machine
  17. end
  18. def test_should_have_an_event
  19. assert_equal :ignite, @invalid_transition.event
  20. end
  21. def test_should_have_a_qualified_event
  22. assert_equal :ignite, @invalid_transition.qualified_event
  23. end
  24. def test_should_have_a_from_value
  25. assert_equal 'parked', @invalid_transition.from
  26. end
  27. def test_should_have_a_from_name
  28. assert_equal :parked, @invalid_transition.from_name
  29. end
  30. def test_should_have_a_qualified_from_name
  31. assert_equal :parked, @invalid_transition.qualified_from_name
  32. end
  33. def test_should_generate_a_message
  34. assert_equal 'Cannot transition state via :ignite from :parked', @invalid_transition.message
  35. end
  36. end
  37. class InvalidTransitionWithNamespaceTest < Test::Unit::TestCase
  38. def setup
  39. @klass = Class.new
  40. @machine = StateMachine::Machine.new(@klass, :namespace => 'alarm')
  41. @state = @machine.state :active
  42. @machine.event :disable
  43. @object = @klass.new
  44. @object.state = 'active'
  45. @invalid_transition = StateMachine::InvalidTransition.new(@object, @machine, :disable)
  46. end
  47. def test_should_have_an_event
  48. assert_equal :disable, @invalid_transition.event
  49. end
  50. def test_should_have_a_qualified_event
  51. assert_equal :disable_alarm, @invalid_transition.qualified_event
  52. end
  53. def test_should_have_a_from_name
  54. assert_equal :active, @invalid_transition.from_name
  55. end
  56. def test_should_have_a_qualified_from_name
  57. assert_equal :alarm_active, @invalid_transition.qualified_from_name
  58. end
  59. end