diff options
author | Kenichi Kamiya <kachick1@gmail.com> | 2012-10-15 18:08:16 +0900 |
---|---|---|
committer | Kenichi Kamiya <kachick1@gmail.com> | 2012-10-15 18:08:16 +0900 |
commit | 7dba61438d0ad22d2bc344458958a8f6c1baa8ee (patch) | |
tree | 3198a476b16589bda7fc10f744399a0cce41ffff /test | |
parent | 2c60751bdb63515419b79a14e5d009a7ba43e471 (diff) | |
download | slop-7dba61438d0ad22d2bc344458958a8f6c1baa8ee.tar.gz |
Add test suite for to specify the interface of constructors
Diffstat (limited to 'test')
-rw-r--r-- | test/slop_test.rb | 41 |
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 |