1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/activerecord/test/cases/inclusion_test.rb
Yasuo Honda 23859d0801 Address test_basic_model test error with Oracle enhanced adapter
which ids start from 1000 as a default.
2012-06-27 23:51:50 +09:00

113 lines
3.1 KiB
Ruby

require 'cases/helper'
require 'models/teapot'
class BasicInclusionModelTest < ActiveRecord::TestCase
def test_basic_model
Teapot.create!(:name => "Ronnie Kemper")
assert_equal "Ronnie Kemper", Teapot.first.name
end
def test_initialization
t = Teapot.new(:name => "Bob")
assert_equal "Bob", t.name
end
def test_inherited_model
teapot = CoolTeapot.create!(:name => "Bob")
teapot.reload
assert_equal "Bob", teapot.name
assert_equal "mmm", teapot.aaahhh
end
def test_generated_feature_methods
assert Teapot < Teapot::GeneratedFeatureMethods
end
def test_exists
t = Teapot.create!(:name => "Ronnie Kemper")
assert Teapot.exists?(t)
end
def test_predicate_builder
t = Teapot.create!(:name => "Bob")
assert_equal "Bob", Teapot.where(:id => [t]).first.name
assert_equal "Bob", Teapot.where(:id => t).first.name
end
def test_nested_model
assert_equal "ceiling_teapots", Ceiling::Teapot.table_name
end
end
class InclusionUnitTest < ActiveRecord::TestCase
def setup
@klass = Class.new { include ActiveRecord::Model }
end
def test_non_abstract_class
assert !@klass.abstract_class?
end
def test_abstract_class
@klass.abstract_class = true
assert @klass.abstract_class?
end
def test_establish_connection
assert @klass.respond_to?(:establish_connection)
assert ActiveRecord::Model.respond_to?(:establish_connection)
end
def test_adapter_connection
name = "#{ActiveRecord::Base.connection_config[:adapter]}_connection"
assert @klass.respond_to?(name)
assert ActiveRecord::Model.respond_to?(name)
end
def test_connection_handler
assert_equal ActiveRecord::Base.connection_handler, @klass.connection_handler
end
def test_mirrored_configuration
ActiveRecord::Base.time_zone_aware_attributes = true
assert @klass.time_zone_aware_attributes
ActiveRecord::Base.time_zone_aware_attributes = false
assert !@klass.time_zone_aware_attributes
ensure
ActiveRecord::Base.time_zone_aware_attributes = false
end
# Doesn't really test anything, but this is here to ensure warnings don't occur
def test_included_twice
@klass.send :include, ActiveRecord::Model
end
def test_deprecation_proxy
assert_equal ActiveRecord::Model.name, ActiveRecord::Model::DeprecationProxy.name
assert_equal ActiveRecord::Base.superclass, assert_deprecated { ActiveRecord::Model::DeprecationProxy.superclass }
sup, sup2 = nil, nil
ActiveSupport.on_load(:__test_active_record_model_deprecation) do
sup = superclass
sup2 = send(:superclass)
end
assert_deprecated do
ActiveSupport.run_load_hooks(:__test_active_record_model_deprecation, ActiveRecord::Model::DeprecationProxy)
end
assert_equal ActiveRecord::Base.superclass, sup
assert_equal ActiveRecord::Base.superclass, sup2
end
end
class InclusionFixturesTest < ActiveRecord::TestCase
fixtures :teapots
def test_fixtured_record
assert_equal "Bob", teapots(:bob).name
end
def test_timestamped_fixture
assert_not_nil teapots(:bob).created_at
end
end