aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/test
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2016-07-22 19:48:46 -0300
committerGitHub <noreply@github.com>2016-07-22 19:48:46 -0300
commit0020f1a4c96731a17ac4f84fa67058b5bc459fe2 (patch)
tree18c4b17a50e004d6506755dd2730b6428f037cec /activesupport/test
parent92c60f87a6cbbe8c556399f415772c2dd2d48981 (diff)
parent4db6ac29f24f3d38401f4cf243a7a70b07e964e1 (diff)
downloadrails-0020f1a4c96731a17ac4f84fa67058b5bc459fe2.tar.gz
rails-0020f1a4c96731a17ac4f84fa67058b5bc459fe2.tar.bz2
rails-0020f1a4c96731a17ac4f84fa67058b5bc459fe2.zip
Merge pull request #25914 from jmccartie/jm/not_in
Adds `not_in?` onto Object
Diffstat (limited to 'activesupport/test')
-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