summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLee Jarvis <ljjarvis@gmail.com>2012-10-15 03:06:10 -0700
committerLee Jarvis <ljjarvis@gmail.com>2012-10-15 03:06:10 -0700
commit310422bba09a9a780a5f36a62784318366ad310b (patch)
tree3198a476b16589bda7fc10f744399a0cce41ffff
parent2c60751bdb63515419b79a14e5d009a7ba43e471 (diff)
parent7dba61438d0ad22d2bc344458958a8f6c1baa8ee (diff)
downloadslop-310422bba09a9a780a5f36a62784318366ad310b.tar.gz
Merge pull request #89 from kachick/improve/add_test_suite_for_constructors_context_and_return_value
Add test suite for to specify the interface of constructors
-rw-r--r--test/slop_test.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/slop_test.rb b/test/slop_test.rb
index 979af15..d258543 100644
--- a/test/slop_test.rb
+++ b/test/slop_test.rb
@@ -352,6 +352,47 @@ class SlopTest < TestCase
assert_equal %w' baz hello ', args
end
+ test "context and return value of constructor block" do
+ peep = nil
+ ret = Slop.new { peep = self }
+ assert_same ret, peep
+ assert !equal?(peep)
+
+ peep = nil
+ ret = Slop.new { |a| peep = self }
+ assert !peep.equal?(ret)
+ assert_same peep, self
+
+ peep = nil
+ ret = Slop.new { |a, b| peep = self }
+ assert_same ret, peep
+ assert !equal?(peep)
+
+ peep = nil
+ ret = Slop.new { |a, *rest| peep = self }
+ assert_same ret, peep
+ assert !equal?(peep)
+
+ peep = nil
+ ret = Slop.parse([]) { peep = self }
+ assert_same ret, peep
+ assert !equal?(peep)
+
+ peep = nil
+ ret = Slop.parse([]) { |a| peep = self }
+ assert !peep.equal?(ret)
+ assert_same peep, self
+
+ peep = nil
+ ret = Slop.parse([]) { |a, b| peep = self }
+ assert_same ret, peep
+ assert !equal?(peep)
+
+ peep = nil
+ ret = Slop.parse([]) { |a, *rest| peep = self }
+ assert_same ret, peep
+ assert !equal?(peep)
+ end
test "to_s do not break self" do
slop = Slop.new do