--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+ <name>1.1-stable</name>\r
+ <comment></comment>\r
+ <projects>\r
+ </projects>\r
+ <buildSpec>\r
+ <buildCommand>\r
+ <name>org.rubypeople.rdt.core.rubybuilder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ <buildCommand>\r
+ <name>com.aptana.ide.core.unifiedBuilder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ </buildSpec>\r
+ <natures>\r
+ <nature>com.aptana.ide.project.nature.web</nature>\r
+ <nature>org.rubypeople.rdt.core.rubynature</nature>\r
+ <nature>org.radrails.rails.core.railsnature</nature>\r
+ </natures>\r
+</projectDescription>\r
# these attributes make time aggregations easier
def spent_on=(date)
super
+ if spent_on.is_a?(Time)
+ self.spent_on = spent_on.to_date
+ end
self.tyear = spent_on ? spent_on.year : nil
self.tmonth = spent_on ? spent_on.month : nil
self.tweek = spent_on ? Date.civil(spent_on.year, spent_on.month, spent_on.day).cweek : nil
def test_hours_should_default_to_nil
assert_nil TimeEntry.new.hours
end
+
+ def test_spent_on_with_blank
+ c = TimeEntry.new
+ c.spent_on = ''
+ assert_nil c.spent_on
+ end
+
+ def test_spent_on_with_nil
+ c = TimeEntry.new
+ c.spent_on = nil
+ assert_nil c.spent_on
+ end
+
+ def test_spent_on_with_string
+ c = TimeEntry.new
+ c.spent_on = "2011-01-14"
+ assert_equal Date.parse("2011-01-14"), c.spent_on
+ end
+
+ def test_spent_on_with_invalid_string
+ c = TimeEntry.new
+ c.spent_on = "foo"
+ assert_nil c.spent_on
+ end
+
+ def test_spent_on_with_date
+ c = TimeEntry.new
+ c.spent_on = Date.today
+ assert_equal Date.today, c.spent_on
+ end
+
+ def test_spent_on_with_time
+ c = TimeEntry.new
+ c.spent_on = Time.now
+ assert_equal Date.today, c.spent_on
+ end
context "#earilest_date_for_project" do
setup do