require'rubygems'require'activesupport'require'activerecord'require'bacon'Bacon.summary_on_exit
require'facon'require'sqlite3'ENV['TZ']='UTC'ActiveRecord::Base.time_zone_aware_attributes =trueActiveRecord::Base.establish_connection :adapter=>"sqlite3",:database=>":memory:"classCreateEvents< ActiveRecord::Migrationdefself.upcreate_table :eventsdo |t|
t.datetime :scheduled_at
t.timestamps
endenddefself.down
drop_table :eventsendendclassEvent< ActiveRecord::Base;endCreateEvents.down rescue puts("Down failed because db doesn't exist")CreateEvents.up
describe "time zones working great"do
before do
Time.zone ="Sydney"@events=[Event.create!(:scheduled_at=>"2009-10-05 23:59"),Event.create!(:scheduled_at=>"2009-10-06 00:00"),Event.create!(:scheduled_at=>"2009-10-06 23:59"),Event.create!(:scheduled_at=>"2009-10-07 00:00")]end
after do
Event.destroy_all
end
describe "find on scheduled_at"do
it "finds the event using interpolated conditions and a time in utc"do
day =Time.zone.parse("2009-10-06 00:00").utc
Event.all(:conditions=>{:scheduled_at=> day...(day+1.day)}).should.equal([@events[1],@events[2]])endendend