]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/gems/composite_primary_keys-1.1.0/test/test_clone.rb
Freezing composite primary key so that we can apply TomH's patch to it, and that...
[rails.git] / vendor / gems / composite_primary_keys-1.1.0 / test / test_clone.rb
diff --git a/vendor/gems/composite_primary_keys-1.1.0/test/test_clone.rb b/vendor/gems/composite_primary_keys-1.1.0/test/test_clone.rb
new file mode 100644 (file)
index 0000000..8229744
--- /dev/null
@@ -0,0 +1,34 @@
+require 'abstract_unit'\r
+require 'fixtures/reference_type'\r
+require 'fixtures/reference_code'\r
+\r
+class TestClone < Test::Unit::TestCase\r
+  fixtures :reference_types, :reference_codes\r
+  \r
+  CLASSES = {\r
+    :single => {\r
+      :class => ReferenceType,\r
+      :primary_keys => :reference_type_id,\r
+    },\r
+    :dual   => { \r
+      :class => ReferenceCode,\r
+      :primary_keys => [:reference_type_id, :reference_code],\r
+    },\r
+  }\r
+  \r
+  def setup\r
+    self.class.classes = CLASSES\r
+  end\r
+  \r
+  def test_truth\r
+    testing_with do\r
+      clone = @first.clone\r
+      assert_equal @first.attributes.block(@klass.primary_key), clone.attributes\r
+      if composite?\r
+        @klass.primary_key.each {|key| assert_nil clone[key], "Primary key '#{key}' should be nil"} \r
+      else\r
+        assert_nil clone[@klass.primary_key], "Sole primary key should be nil"\r
+      end\r
+    end\r
+  end\r
+end
\ No newline at end of file