Sha256: 3fe77b51dfb3d0235dd333253ddaaf1f4a37e4a8254d27962e9a31e2addaeebd

Contents?: true

Size: 1.63 KB

Versions: 2

Compression:

Stored size: 1.63 KB

Contents

# Some test models
# These will get created and dropped during the active record tests
# Be sure and call setup and teardown
module ActiveRecordFixtures
  extend self
  def setup
    ActiveRecordFixtures::Order.setup
    ActiveRecordFixtures::Shipment.setup
  end
  def teardown
    ActiveRecordFixtures::Shipment.teardown
    ActiveRecordFixtures::Order.teardown
    begin
      super
    rescue Exception => e
    end
  end
  class Order < ActiveRecord::Base
    self.table_name = 'newrelic_test_orders'
    has_and_belongs_to_many :shipments, :class_name => 'ActiveRecordFixtures::Shipment'
    def self.setup
      connection.create_table self.table_name, :force => true do |t|
        t.column :name, :string
      end
    end
    def self.add_delay
      # Introduce a 500 ms delay into db operations on Orders
      def connection.log_info *args
        sleep 0.5
        super *args
      end
    end
    def self.teardown
      connection.drop_table table_name
      def connection.log_info *args
        super *args
      end
    end
  end
  
  class Shipment < ActiveRecord::Base
    self.table_name = 'newrelic_test_shipment'
    has_and_belongs_to_many :orders, :class_name => 'ActiveRecordFixtures::Order'
    def self.setup
      connection.create_table self.table_name, :force => true do |t|
        # no other columns
      end
      connection.create_table 'orders_shipments', :force => true, :id => false do |t|
        t.column :order_id, :integer 
        t.column :shipment_id, :integer 
      end
    end
    
    def self.teardown
      connection.drop_table 'orders_shipments'
      connection.drop_table self.table_name
    end
  end    
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
newrelic_rpm-2.14.1.logging1 test/active_record_fixtures.rb
newrelic_rpm-2.14.1 test/active_record_fixtures.rb