Sha256: 62be5ea14e0e3075ed6a3b434947256ac3d10b1405c8dc5f2c9e40c1baca7d43

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

require 'header'
require 'ar_schema'
require File.expand_path("lib/lolita-translation/builder/active_record_builder")
require File.expand_path("lib/lolita-translation/configuration")
ARSchema.connect!

describe Lolita::Translation::Builder::ActiveRecordBuilder do 
  let(:klass) { Lolita::Translation::Builder::ActiveRecordBuilder }
  let(:config){ Lolita::Translation::Configuration.new(Product) }
  before(:each) do 
    Object.send(:remove_const, :Product) if Object.const_defined?(:Product)
    a_klass = Class.new(ActiveRecord::Base)
    Object.const_set(:Product, a_klass)
  end

  after(:each) do 
    Object.send(:remove_const, :Product) rescue nil
  end

 
  it "should build class with ActiveRecord::Base as superclass" do 
    obj = klass.new(Product)
    obj.build
    obj.klass.superclass.should eq(ActiveRecord::Base)
  end

  it "should call class methods on klass" do 
    obj = klass.new(Product, config)
    obj.stub(:association_name).and_return(:product)
    obj.build
    obj.klass.reflections.keys.should include(:product)
  end

  it "should update base class" do
    obj = klass.new(Product,config)
    obj.stub(:translations_association_name).and_return(:translations)
    obj.build
    Product.reflections.keys.should include(:translations)
  end 
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
lolita-translation-0.6.3 spec/lolita-translation/builder/active_record_builder_spec.rb
lolita-translation-0.6.2 spec/lolita-translation/builder/active_record_builder_spec.rb
lolita-translation-0.6.1 spec/lolita-translation/builder/active_record_builder_spec.rb
lolita-translation-0.6.0 spec/lolita-translation/builder/active_record_builder_spec.rb
lolita-translation-0.5.0 spec/lolita-translation/builder/active_record_builder_spec.rb