]> git.openstreetmap.org Git - rails.git/blob - vendor/gems/composite_primary_keys-1.1.0/test/test_clone.rb
822974430b2df745fc764bb293ea30c3570cadde
[rails.git] / vendor / gems / composite_primary_keys-1.1.0 / test / test_clone.rb
1 require 'abstract_unit'\r
2 require 'fixtures/reference_type'\r
3 require 'fixtures/reference_code'\r
4 \r
5 class TestClone < Test::Unit::TestCase\r
6   fixtures :reference_types, :reference_codes\r
7   \r
8   CLASSES = {\r
9     :single => {\r
10       :class => ReferenceType,\r
11       :primary_keys => :reference_type_id,\r
12     },\r
13     :dual   => { \r
14       :class => ReferenceCode,\r
15       :primary_keys => [:reference_type_id, :reference_code],\r
16     },\r
17   }\r
18   \r
19   def setup\r
20     self.class.classes = CLASSES\r
21   end\r
22   \r
23   def test_truth\r
24     testing_with do\r
25       clone = @first.clone\r
26       assert_equal @first.attributes.block(@klass.primary_key), clone.attributes\r
27       if composite?\r
28         @klass.primary_key.each {|key| assert_nil clone[key], "Primary key '#{key}' should be nil"} \r
29       else\r
30         assert_nil clone[@klass.primary_key], "Sole primary key should be nil"\r
31       end\r
32     end\r
33   end\r
34 end