ruby/spec/rubyspec/library/date/shared/parse.rb
eregon 95e8c48dd3 Add in-tree mspec and ruby/spec
* For easier modifications of ruby/spec by MRI developers.
* .gitignore: track changes under spec.
* spec/mspec, spec/rubyspec: add in-tree mspec and ruby/spec.
  These files can therefore be updated like any other file in MRI.
  Instructions are provided in spec/README.
  [Feature #13156] [ruby-core:79246]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58595 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-07 12:04:49 +00:00

54 lines
1.5 KiB
Ruby

describe :date_parse, shared: true do
it "can parse a mmm-YYYY string into a Date object" do
d = Date.parse("feb#{@sep}2008")
d.year.should == 2008
d.month.should == 2
d.day.should == 1
end
it "can parse a 'DD mmm YYYY' string into a Date object" do
d = Date.parse("23#{@sep}feb#{@sep}2008")
d.year.should == 2008
d.month.should == 2
d.day.should == 23
end
it "can parse a 'mmm DD YYYY' string into a Date object" do
d = Date.parse("23#{@sep}feb#{@sep}2008")
d.year.should == 2008
d.month.should == 2
d.day.should == 23
end
it "can parse a 'YYYY mmm DD' string into a Date object" do
d = Date.parse("2008#{@sep}feb#{@sep}23")
d.year.should == 2008
d.month.should == 2
d.day.should == 23
end
it "can parse a month name and day into a Date object" do
d = Date.parse("november#{@sep}5th")
d.should == Date.civil(Date.today.year, 11, 5)
end
it "can parse a month name, day and year into a Date object" do
d = Date.parse("november#{@sep}5th#{@sep}2005")
d.should == Date.civil(2005, 11, 5)
end
it "can parse a year, month name and day into a Date object" do
d = Date.parse("2005#{@sep}november#{@sep}5th")
d.should == Date.civil(2005, 11, 5)
end
it "can parse a year, day and month name into a Date object" do
d = Date.parse("5th#{@sep}november#{@sep}2005")
d.should == Date.civil(2005, 11, 5)
end
it "can handle negative year numbers" do
d = Date.parse("5th#{@sep}november#{@sep}-2005")
d.should == Date.civil(-2005, 11, 5)
end
end