diff options
author | Raimonds Simanovskis <raimonds.simanovskis@gmail.com> | 2009-08-10 17:25:53 +0300 |
---|---|---|
committer | Raimonds Simanovskis <raimonds.simanovskis@gmail.com> | 2010-06-04 22:44:02 +0300 |
commit | 8136230cca4ff7550f9fbc786a4327bd520d27cb (patch) | |
tree | bf7849716de791c9925d85eedaa16f35bf0f0918 /activerecord | |
parent | eec90bab2815642d1771c9f9c37bd5a0bcd6fc9d (diff) | |
download | rails-8136230cca4ff7550f9fbc786a4327bd520d27cb.tar.gz rails-8136230cca4ff7550f9fbc786a4327bd520d27cb.tar.bz2 rails-8136230cca4ff7550f9fbc786a4327bd520d27cb.zip |
Explicitly set Topic model last_read attribute as Date value when Oracle enhanced adapter is used
(otherwise some tests are failing which assume that this attribute will have Date value)
Diffstat (limited to 'activerecord')
-rwxr-xr-x | activerecord/test/cases/base_test.rb | 7 | ||||
-rw-r--r-- | activerecord/test/models/topic.rb | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 1d883f7ea8..36c572b5e7 100755 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -430,14 +430,14 @@ class BasicsTest < ActiveRecord::TestCase end def test_preserving_date_objects - if current_adapter?(:SybaseAdapter, :OracleAdapter) + if current_adapter?(:SybaseAdapter) # Sybase ctlib does not (yet?) support the date type; use datetime instead. - # Oracle treats all dates/times as Time. assert_kind_of( Time, Topic.find(1).last_read, "The last_read attribute should be of the Time class" ) else + # Oracle enhanced adapter allows to define Date attributes in model class (see topic.rb) assert_kind_of( Date, Topic.find(1).last_read, "The last_read attribute should be of the Date class" @@ -2125,10 +2125,11 @@ class BasicsTest < ActiveRecord::TestCase assert_equal "integer", xml.elements["//parent-id"].attributes['type'] assert_equal "true", xml.elements["//parent-id"].attributes['nil'] - if current_adapter?(:SybaseAdapter, :OracleAdapter) + if current_adapter?(:SybaseAdapter) assert_equal last_read_in_current_timezone, xml.elements["//last-read"].text assert_equal "datetime" , xml.elements["//last-read"].attributes['type'] else + # Oracle enhanced adapter allows to define Date attributes in model class (see topic.rb) assert_equal "2004-04-15", xml.elements["//last-read"].text assert_equal "date" , xml.elements["//last-read"].attributes['type'] end diff --git a/activerecord/test/models/topic.rb b/activerecord/test/models/topic.rb index 91fc7c9416..617f01b47d 100644 --- a/activerecord/test/models/topic.rb +++ b/activerecord/test/models/topic.rb @@ -43,6 +43,12 @@ class Topic < ActiveRecord::Base before_create :default_written_on before_destroy :destroy_children + # Explicitly define as :date column so that returned Oracle DATE values would be typecasted to Date and not Time. + # Some tests depend on assumption that this attribute will have Date values. + if current_adapter?(:OracleEnhancedAdapter) + set_date_columns :last_read + end + def parent Topic.find(parent_id) end |