Sha256: dc98c2f40a4ea7ee93a1ee02ae07ce1fa4e29087e9d2ee01866f3dd9d53bff21

Contents?: true

Size: 1.53 KB

Versions: 14

Compression:

Stored size: 1.53 KB

Contents

require File.expand_path('../abstract_unit', __FILE__)

class TestAttributes < ActiveSupport::TestCase
  fixtures :reference_types, :reference_codes, :products, :tariffs, :product_tariffs
  
  CLASSES = {
    :single => {
      :class => ReferenceType,
      :primary_keys => :reference_type_id,
    },
    :dual   => { 
      :class => ReferenceCode,
      :primary_keys => [:reference_type_id, :reference_code],
    },
  }
  
  def setup
    self.class.classes = CLASSES
  end
  
  def test_brackets
    testing_with do
      @first.attributes.each_pair do |attr_name, value|
        assert_equal value, @first[attr_name]
      end
    end
  end

  def test_brackets_primary_key
    testing_with do
      assert_equal(@first.id, @first[@primary_keys])
      assert_equal(@first.id, @first[@first.class.primary_key])
    end
  end

  def test_brackets_assignment
    testing_with do
      @first.attributes.each_pair do |attr_name, value|
        @first[attr_name]= !value.nil? ? value * 2 : '1'
        assert_equal !value.nil? ? value * 2 : '1', @first[attr_name]
      end
    end
  end
    
  def test_brackets_foreign_key_assignment
    tarrif = tariffs(:flat)
    product_tariff = product_tariffs(:first_flat)
    compare_indexes(tarrif, tarrif.class.primary_key, product_tariff, [:tariff_id, :tariff_start_date])
  end
  
  private

  def compare_indexes(obj1, indexes1, obj2, indexes2)
    indexes1.length.times do |key_index|
      key1 = indexes1[key_index]
      key2 = indexes2[key_index]
      assert_equal(obj1[key1], obj2[key2])
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
composite_primary_keys-5.0.14 test/test_attributes.rb
composite_primary_keys-5.0.13 test/test_attributes.rb
composite_primary_keys-5.0.12 test/test_attributes.rb
composite_primary_keys-5.0.11 test/test_attributes.rb
composite_primary_keys-5.0.10 test/test_attributes.rb
composite_primary_keys-5.0.9 test/test_attributes.rb
composite_primary_keys-5.0.8 test/test_attributes.rb
composite_primary_keys-5.0.6 test/test_attributes.rb
composite_primary_keys-5.0.5 test/test_attributes.rb
composite_primary_keys-5.0.4 test/test_attributes.rb
composite_primary_keys-5.0.2 test/test_attributes.rb
composite_primary_keys-5.0.1 test/test_attributes.rb
composite_primary_keys-5.0.0 test/test_attributes.rb
composite_primary_keys-5.0.0.rc1 test/test_attributes.rb