From 8fc83db6058faea60d99115246e3b29f3b8dc523 Mon Sep 17 00:00:00 2001 From: Scott Barron Date: Thu, 21 Feb 2008 12:32:04 -0500 Subject: [PATCH] Further set up for functional tests --- lib/aasm.rb | 1 + spec/functional/conversation.rb | 48 +++++++++++++++++++++++++++++++++ spec/spec_helper.rb | 3 +-- 3 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 spec/functional/conversation.rb diff --git a/lib/aasm.rb b/lib/aasm.rb index b64e80b..74e67a7 100644 --- a/lib/aasm.rb +++ b/lib/aasm.rb @@ -1,4 +1,5 @@ require File.join(File.dirname(__FILE__), 'event') +require File.join(File.dirname(__FILE__), 'state') module AASM class InvalidTransition < Exception diff --git a/spec/functional/conversation.rb b/spec/functional/conversation.rb new file mode 100644 index 0000000..8c33db6 --- /dev/null +++ b/spec/functional/conversation.rb @@ -0,0 +1,48 @@ +require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'aasm') + +class Conversation + include AASM + + initial_state :needs_attention + + state :needs_attention + state :read + state :closed + state :awaiting_response + state :junk + + event :new_message do + end + + event :view do + transitions :to => :read, :from => [:needs_attention] + end + + event :reply do + end + + event :close do + transitions :to => :closed, :from => [:read, :awaiting_response] + end + + event :junk do + transitions :to => :junk, :from => [:read] + end + + event :unjunk do + end + + def initialize(persister) + @persister = persister + end + + + private + def aasm_read_state + @persister.read_state + end + + def aasm_write_state(state) + @persister.write_state(state) + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 46c310c..f1e4f52 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,2 +1 @@ -require File.join(File.dirname(__FILE__), '..', 'lib', 'aasm') -require File.join(File.dirname(__FILE__), '..', 'lib', 'state') +require File.join(File.dirname(__FILE__), '..', 'aasm')