diff options
author | Casey Dahlin <cdahlin@redhat.com> | 2008-10-10 11:02:58 -0400 |
---|---|---|
committer | Casey Dahlin <cdahlin@redhat.com> | 2008-10-10 11:02:58 -0400 |
commit | 45698f129c3b222d09e560a243e0d5188bf02243 (patch) | |
tree | b7503f908a6ecad7900afe9caaec81f883100bf9 | |
parent | 415e277bff45093b7c359270317a5d0b47ff2687 (diff) | |
download | upstate-45698f129c3b222d09e560a243e0d5188bf02243.tar.gz upstate-45698f129c3b222d09e560a243e0d5188bf02243.tar.xz upstate-45698f129c3b222d09e560a243e0d5188bf02243.zip |
Remove test.rb from .gitignore and add it to the project
Its not a great test suite, but it does its job for now. Also, we now ignore the
coverage/ folder, which is rcov output.
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | test.rb | 53 |
2 files changed, 54 insertions, 1 deletions
@@ -1,2 +1,2 @@ .*.swp -test.rb +coverage/ @@ -0,0 +1,53 @@ +require 'state' +require 'set' + +include UpState + +def put_states + foo = State.send(:class_variable_get, :@@states).map{ |x| x.to_s_color } + puts foo.sort.join(", ") +end + +foo = State.new_type("foo", [Event.new("gimmefoo", {:bob => /^...$/})], [], [:bob]) +bar = State.new_type("bar", [], [Dependency.new(foo)]) +baz = State.new_type("baz", [], [Dependency.new(foo, {:bob => "abc"}, {:bob => :tom}), Dependency.new(bar)]) +bam = State.new_type("bam", [Event::Epsilon], [Dependency.new(baz)]) +bang = State.new_type("bang", [], [Dependency.new(bam)]) +bao = State.new_type("bao", [], [Dependency.new(bam), Dependency.new(bang)]) + +begin + put_states + State.process_event(Event.new("gimmefoo", {:bob => "1234"})) + put_states + State.process_event(Event.new("gimmefoo", {:bob => "123"})) + myfoo = foo.get_all.select{ |x| x.params[:bob] == "123" }[0] + put_states + bar.hold(:user) + put_states + baz.hold(:user) + put_states + bang.hold(:user) + put_states + foo.release(:user) + put_states + myfoo.drop + put_states + State.process_event(Event.new("gimmefoo", {:bob => "123"})) + put_states + State.process_event(Event.new("gimmefoo", {:bob => "abc"})) + myfoo = foo.get_all.select{ |x| x.params[:bob] == "abc" }[0] + put_states + bar.hold(:user) + put_states + baz.hold(:user) + put_states + bang.hold(:user) + put_states + foo.release(:user) + put_states + myfoo.drop + put_states +rescue + put_states + raise +end |