blob: 64dea42b1f2f28a930e984379b5431143926f47a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'test_helper'))
class MachineTestSubject
include ActiveModel::StateMachine
state_machine do
state :open
state :closed
end
state_machine :initial => :foo do
event :shutdown do
transitions :from => :open, :to => :closed
end
event :timeout do
transitions :from => :open, :to => :closed
end
end
state_machine :extra, :initial => :bar do
end
end
class StateMachineMachineTest < ActiveModel::TestCase
test "allows reuse of existing machines" do
assert_equal 2, MachineTestSubject.state_machines.size
end
test "sets #initial_state from :initial option" do
assert_equal :bar, MachineTestSubject.state_machine(:extra).initial_state
end
test "accesses non-default state machine" do
assert_kind_of ActiveModel::StateMachine::Machine, MachineTestSubject.state_machine(:extra)
end
test "finds events for given state" do
assert_equal [:shutdown, :timeout], MachineTestSubject.state_machine.events_for(:open)
end
end
|