aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test/core_ext/object
diff options
context:
space:
mode:
authorJon McCartie <jon@mccartie.com>2016-07-21 16:47:27 -0500
committerJon McCartie <jon@mccartie.com>2016-07-21 17:23:33 -0500
commit4db6ac29f24f3d38401f4cf243a7a70b07e964e1 (patch)
tree4002a2a48636c39a7bb431f4a31e816e1be0fe95 /activesupport/test/core_ext/object
parent929a6500806fe671d9ac0002da8537bf26b8f25d (diff)
downloadrails-4db6ac29f24f3d38401f4cf243a7a70b07e964e1.tar.gz
rails-4db6ac29f24f3d38401f4cf243a7a70b07e964e1.tar.bz2
rails-4db6ac29f24f3d38401f4cf243a7a70b07e964e1.zip
Adds `not_in?` onto Object
Diffstat (limited to 'activesupport/test/core_ext/object')
-rw-r--r--activesupport/test/core_ext/object/exclusion_test.rb53
1 files changed, 53 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/object/exclusion_test.rb b/activesupport/test/core_ext/object/exclusion_test.rb
new file mode 100644
index 0000000000..487c97d255
--- /dev/null
+++ b/activesupport/test/core_ext/object/exclusion_test.rb
@@ -0,0 +1,53 @@
+require 'abstract_unit'
+require 'active_support/core_ext/object/exclusion'
+
+class NotInTest < ActiveSupport::TestCase
+ def test_not_in_array
+ assert 1.not_in?([2, 3])
+ assert_not 2.not_in?([1,2])
+ end
+
+ def test_not_in_hash
+ h = { "a" => 100, "b" => 200 }
+ assert "z".not_in?(h)
+ assert_not "a".not_in?(h)
+ end
+
+ def test_not_in_string
+ assert "ol".not_in?("hello")
+ assert_not "lo".not_in?("hello")
+ assert ?z.not_in?("hello")
+ end
+
+ def test_not_in_range
+ assert 75.not_in?(1..50)
+ assert_not 25.not_in?(1..50)
+ end
+
+ def test_not_in_set
+ s = Set.new([1,2])
+ assert 3.not_in?(s)
+ assert_not 1.not_in?(s)
+ end
+
+ module A
+ end
+ class B
+ include A
+ end
+ class C < B
+ end
+ class D
+ end
+
+ def test_not_in_module
+ assert A.not_in?(D)
+ assert A.not_in?(A)
+ assert_not A.not_in?(B)
+ assert_not A.not_in?(C)
+ end
+
+ def test_no_method_catching
+ assert_raise(ArgumentError) { 1.not_in?(1) }
+ end
+end