aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/invalid_date_test.rb
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2008-02-02 04:28:42 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2008-02-02 04:28:42 +0000
commit5bbc461fcbe18b0ab69c459a94cf0b58f5a4e6b9 (patch)
tree8fa372dcec9d6ae9822038cb590fbce4b92a6f4d /activerecord/test/cases/invalid_date_test.rb
parent6d8534acc032ab3a1ecbb88e9a0ce09d18734071 (diff)
downloadrails-5bbc461fcbe18b0ab69c459a94cf0b58f5a4e6b9.tar.gz
rails-5bbc461fcbe18b0ab69c459a94cf0b58f5a4e6b9.tar.bz2
rails-5bbc461fcbe18b0ab69c459a94cf0b58f5a4e6b9.zip
Fix calculations on associations with custom :foreign_key. Closes #8117 [kamal, jack]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8778 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test/cases/invalid_date_test.rb')
-rw-r--r--activerecord/test/cases/invalid_date_test.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/activerecord/test/cases/invalid_date_test.rb b/activerecord/test/cases/invalid_date_test.rb
new file mode 100644
index 0000000000..e2bb17c37f
--- /dev/null
+++ b/activerecord/test/cases/invalid_date_test.rb
@@ -0,0 +1,24 @@
+require 'cases/helper'
+require 'models/topic'
+
+class InvalidDateTest < Test::Unit::TestCase
+ def test_assign_valid_dates
+ valid_dates = [[2007, 11, 30], [1993, 2, 28], [2008, 2, 29]]
+
+ invalid_dates = [[2007, 11, 31], [1993, 2, 29], [2007, 2, 29]]
+
+ topic = Topic.new
+
+ valid_dates.each do |date_src|
+ topic = Topic.new("last_read(1i)" => date_src[0].to_s, "last_read(2i)" => date_src[1].to_s, "last_read(3i)" => date_src[2].to_s)
+ assert_equal(topic.last_read, Date.new(*date_src))
+ end
+
+ invalid_dates.each do |date_src|
+ assert_nothing_raised do
+ topic = Topic.new({"last_read(1i)" => date_src[0].to_s, "last_read(2i)" => date_src[1].to_s, "last_read(3i)" => date_src[2].to_s})
+ assert_equal(topic.last_read, Time.local(*date_src).to_date, "The date should be modified according to the behaviour of the Time object")
+ end
+ end
+ end
+end