Froze rails gems
[depot.git] / vendor / rails / activeresource / test / base / equality_test.rb
diff --git a/vendor/rails/activeresource/test/base/equality_test.rb b/vendor/rails/activeresource/test/base/equality_test.rb
new file mode 100644 (file)
index 0000000..1fb8938
--- /dev/null
@@ -0,0 +1,43 @@
+require 'abstract_unit'
+require "fixtures/person"
+require "fixtures/street_address"
+
+class BaseEqualityTest < Test::Unit::TestCase
+  def setup
+    @new = Person.new
+    @one = Person.new(:id => 1)
+    @two = Person.new(:id => 2)
+    @street = StreetAddress.new(:id => 2)
+  end
+
+  def test_should_equal_self
+    assert @new == @new, '@new == @new'
+    assert @one == @one, '@one == @one'
+  end
+
+  def test_shouldnt_equal_new_resource
+    assert @new != @one, '@new != @one'
+    assert @one != @new, '@one != @new'
+  end
+
+  def test_shouldnt_equal_different_class
+    assert @two != @street, 'person != street_address with same id'
+    assert @street != @two, 'street_address != person with same id'
+  end
+
+  def test_eql_should_alias_equals_operator
+    assert_equal @new == @new, @new.eql?(@new)
+    assert_equal @new == @one, @new.eql?(@one)
+
+    assert_equal @one == @one, @one.eql?(@one)
+    assert_equal @one == @new, @one.eql?(@new)
+
+    assert_equal @one == @street, @one.eql?(@street)
+  end
+
+  def test_hash_should_be_id_hash
+    [@new, @one, @two, @street].each do |resource|
+      assert_equal resource.id.hash, resource.hash
+    end
+  end
+end