summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCasey Dahlin <cdahlin@redhat.com>2008-10-10 11:02:58 -0400
committerCasey Dahlin <cdahlin@redhat.com>2008-10-10 11:02:58 -0400
commit45698f129c3b222d09e560a243e0d5188bf02243 (patch)
treeb7503f908a6ecad7900afe9caaec81f883100bf9
parent415e277bff45093b7c359270317a5d0b47ff2687 (diff)
downloadupstate-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--.gitignore2
-rw-r--r--test.rb53
2 files changed, 54 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index f5f6eff..d926099 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
.*.swp
-test.rb
+coverage/
diff --git a/test.rb b/test.rb
new file mode 100644
index 0000000..b43299b
--- /dev/null
+++ b/test.rb
@@ -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