Sha256: b61b80eb9bf1c8b091676b7c51ccc99db5fb31876356ebdec3eb7b38362e4314
Contents?: true
Size: 1.8 KB
Versions: 3
Compression:
Stored size: 1.8 KB
Contents
require 'test_helper' require 'active_record' class Invoice < ActiveRecord::Base has_many :invoice_items end class InvoiceItem < ActiveRecord::Base belongs_to :invoice end ActiveRecord::Base.establish_connection( :adapter => "sqlite3", :database => "#{Dir.pwd}/database.sqlite3" ) # ActiveRecord::Schema.define do # create_table :invoices do |table| # table.timestamps # end # end # ActiveRecord::Schema.define do # create_table :invoice_items do |table| # table.column :invoice_id, :string # table.timestamps # end # end # TODO: test auto-loading of Rails assets. require 'disposable/facade/active_record' class ActiveRecordAssociationsTest < MiniTest::Spec class Item < Disposable::Facade facades InvoiceItem include Disposable::Facade::ActiveRecord end let (:invoice) { Invoice.new } it "allows adding facades to associations" do # tests #is_a? InvoiceItem.new.facade.class.must_equal Item InvoiceItem.new.facade.is_a?(InvoiceItem).must_equal true invoice.invoice_items << InvoiceItem.new.facade end class InvoiceFacade < Disposable::Facade facades ::Invoice include Disposable::Facade::ActiveRecord #has_many :items, :class_name => ::InvoiceItem, :foreign_key_name => :invoice_item_id module InstanceMethods # IncludeMethods, Included extend ActiveSupport::Concern included do has_many :items, :class_name => ::InvoiceItem, :foreign_key => :invoice_item_id def self.name "anon" end end end module ClassMethods # ExtendMethods, Extended end extend Disposable::Facade::Subclass end it "what" do invoice = InvoiceFacade.subclass invoice.items << item = InvoiceItem.new # TODO: test items << Facade::Item.new invoice.items.must_equal([item]) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
disposable-0.0.4 | test/active_record_test.rb |
disposable-0.0.3 | test/active_record_test.rb |
disposable-0.0.2 | test/active_record_test.rb |