test/test_hijri.rb in hijri-0.4.0 vs test/test_hijri.rb in hijri-0.5.0

- old
+ new

@@ -88,12 +88,12 @@ date = Hijri::Date.new 1436, 2, 21 assert_equal "Safar", date.strftime("%B") end def test_hijri_date_strftime_with_no_input - date = Hijri::Date.new 1433, 9, 18 - assert_equal "1433-09-18", date.strftime + date = Hijri::Date.new 1433, 12, 18 + assert_equal "1433-12-18", date.strftime end def test_hijri_datetime_strftime_with_no_input datetime = Hijri::DateTime.new 1433, 9, 18, 1, 1, 1, '+03:00' #"1433-09-18T01:01:01+03:00" @@ -129,12 +129,50 @@ assert_equal "079", date.strftime('%j') end def test_hijri_week_number_of_the_year date = Hijri::Date.new 1436, 3, 20 - assert_equal("11", date.strftime('%U')) - assert_equal("11", date.strftime('%W')) + assert_equal "11", date.strftime('%U') + assert_equal "11", date.strftime('%W') end - # TODO add Hijri::Date.change and test it. + def test_date_change + date = Hijri::Date.new 1436, 3, 20 + date_to_be = Hijri::Date.new 1435, 4, 10 + + date.change :year => 1435, :month => 4, :day => 10 + assert_equal date_to_be, date + end + + def test_date_change_with_nil_arguments + date = Hijri::Date.new 1436, 3, 20 + date_to_be = Hijri::Date.new 1435, 4, 20 + + date.change :year => 1435, :month => 4, :day => nil + assert_equal date_to_be, date + end + + def test_datetime_change + datetime = Hijri::DateTime.new(1436, 3, 20, 10, 15, 30) + datetime_to_be = Hijri::DateTime.new(1435, 4, 10, 9, 30, 0) + + datetime.change :year => 1435, :month => 4, :day => 10, :hour => 9, :minute => 30, :second => 0 + assert_equal datetime_to_be, datetime + end + + def test_datetime_change_with_nil_arguments + datetime = Hijri::DateTime.new(1436, 3, 20, 10, 15, 30) + datetime_to_be = Hijri::DateTime.new(1435, 4, 10, 9, 30, 30) + + datetime.change :year => 1435, :month => 4, :day => 10, :hour => 9, :minute => 30, :second => nil + assert_equal datetime_to_be, datetime + end + + def test_initilize_date_with_invalid_arguments + assert_raises(ArgumentError) { Hijri::Date.new(1430, 30, 10) } + end + + def test_initilize_datetime_with_invalid_arguments + assert_raises(ArgumentError) { Hijri::DateTime.new(1430, 12, 10, 30, 70) } + end end