summaryrefslogtreecommitdiff
path: root/spec/ruby/core/objectspace/weakkeymap/element_reference_spec.rb
diff options
context:
space:
mode:
authorJean Boussier <byroot@ruby-lang.org>2023-04-14 11:28:41 +0200
committerJean Boussier <jean.boussier@gmail.com>2023-04-15 02:10:38 +0200
commita1db5ecd935ef1fc95ad8844f33f293fe22bfdf5 (patch)
treef08b34026d68d26aa027b4e174e5cff3c939cd84 /spec/ruby/core/objectspace/weakkeymap/element_reference_spec.rb
parent45c6b58768c53b5021a780c7e5fec2382e940b04 (diff)
downloadruby-a1db5ecd935ef1fc95ad8844f33f293fe22bfdf5.tar.gz
Add specs for ObjectSpace::WeakKeyMap
[Feature #18498]
Diffstat (limited to 'spec/ruby/core/objectspace/weakkeymap/element_reference_spec.rb')
-rw-r--r--spec/ruby/core/objectspace/weakkeymap/element_reference_spec.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/spec/ruby/core/objectspace/weakkeymap/element_reference_spec.rb b/spec/ruby/core/objectspace/weakkeymap/element_reference_spec.rb
new file mode 100644
index 0000000000..7246edbcc9
--- /dev/null
+++ b/spec/ruby/core/objectspace/weakkeymap/element_reference_spec.rb
@@ -0,0 +1,26 @@
+require_relative '../../../spec_helper'
+
+ruby_version_is "3.3" do
+ describe "ObjectSpace::WeakKeyMap#[]" do
+ it "is faithful to the map's content" do
+ map = ObjectSpace::WeakKeyMap.new
+ key1, key2 = %w[a b].map(&:upcase)
+ ref1, ref2 = %w[x y]
+ map[key1] = ref1
+ map[key1].should == ref1
+ map[key1] = ref1
+ map[key1].should == ref1
+ map[key2] = ref2
+ map[key1].should == ref1
+ map[key2].should == ref2
+ end
+
+ it "matches using equality semantics" do
+ map = ObjectSpace::WeakKeyMap.new
+ key1, key2 = %w[a a].map(&:upcase)
+ ref = "x"
+ map[key1] = ref
+ map[key2].should == ref
+ end
+ end
+end \ No newline at end of file