+++ /dev/null
-require 'abstract_unit'
-require 'fixtures/reference_type'
-require 'fixtures/reference_code'
-require 'fixtures/street'
-require 'fixtures/suburb'
-
-class TestCreate < Test::Unit::TestCase
- fixtures :reference_types, :reference_codes, :streets, :suburbs
-
- CLASSES = {
- :single => {
- :class => ReferenceType,
- :primary_keys => :reference_type_id,
- :create => {:reference_type_id => 10, :type_label => 'NEW_TYPE', :abbreviation => 'New Type'}
- },
- :dual => {
- :class => ReferenceCode,
- :primary_keys => [:reference_type_id, :reference_code],
- :create => {:reference_type_id => 1, :reference_code => 20, :code_label => 'NEW_CODE', :abbreviation => 'New Code'}
- },
- }
-
- def setup
- self.class.classes = CLASSES
- end
-
- def test_setup
- testing_with do
- assert_not_nil @klass_info[:create]
- end
- end
-
- def test_create
- testing_with do
- assert new_obj = @klass.create(@klass_info[:create])
- assert !new_obj.new_record?
- end
- end
-
- def test_create_no_id
- testing_with do
- begin
- @obj = @klass.create(@klass_info[:create].block(@klass.primary_key))
- @successful = !composite?
- rescue CompositePrimaryKeys::ActiveRecord::CompositeKeyError
- @successful = false
- rescue
- flunk "Incorrect exception raised: #{$!}, #{$!.class}"
- end
- assert_equal composite?, !@successful, "Create should have failed for composites; #{@obj.inspect}"
- end
- end
-
- def test_create_on_association
- suburb = Suburb.find(:first)
- suburb.streets.create(:name => "my street")
- street = Street.find_by_name('my street')
- assert_equal(suburb.city_id, street.city_id)
- assert_equal(suburb.suburb_id, street.suburb_id)
- end
-
- def test_create_on_association_when_belongs_to_is_single_key
- rt = ReferenceType.find(:first)
- rt.reference_codes.create(:reference_code => 4321, :code_label => 'foo', :abbreviation => 'bar')
- rc = ReferenceCode.find_by_reference_code(4321)
- assert_equal(rc.reference_type_id, rt.reference_type_id)
- end
-end