Imported Upstream version 3.10.0

Former-commit-id: 172c8e3c300b39d5785c7a3e8dfb08ebdbc1a99b
This commit is contained in:
Jo Shields
2014-10-04 11:27:48 +01:00
parent fe777c5c82
commit 8b9b85e7f5
970 changed files with 20242 additions and 31308 deletions

View File

@ -668,6 +668,43 @@ namespace MonoTests.System {
Assert.AreEqual (dto.Offset, dto2.Offset);
Assert.AreEqual (dt.AddDays (-60), dto2.DateTime);
}
[Test]
public void TestPartialDateTimeParsing ()
{
var now = DateTime.Now;
const DateTimeStyles style = DateTimeStyles.AssumeUniversal;
//year
var date = DateTimeOffset.ParseExact ("2003", "yyyy", CultureInfo.InvariantCulture, style);
var expected = "01/01/2003 00:00:00 +00:00";
Assert.AreEqual (expected, date.ToString (CultureInfo.InvariantCulture));
//month
date = DateTimeOffset.ParseExact ("12", "MM", CultureInfo.InvariantCulture, style);
expected = string.Format ("12/01/{0} 00:00:00 +00:00", now.Year);
Assert.AreEqual (expected, date.ToString (CultureInfo.InvariantCulture));
//day
date = DateTimeOffset.ParseExact ("29", "dd", CultureInfo.InvariantCulture, style);
expected = string.Format ("01/29/{0} 00:00:00 +00:00", now.Year);
Assert.AreEqual (expected, date.ToString (CultureInfo.InvariantCulture));
//hours
date = DateTimeOffset.ParseExact ("06", "HH", CultureInfo.InvariantCulture, style);
expected = string.Format ("{0:D2}/{1:D2}/{2} 06:00:00 +00:00", now.Month, now.Day, now.Year);
Assert.AreEqual (expected, date.ToString (CultureInfo.InvariantCulture));
//minutes
date = DateTimeOffset.ParseExact ("45", "mm", CultureInfo.InvariantCulture, style);
expected = string.Format ("{0:D2}/{1:D2}/{2} 00:45:00 +00:00", now.Month, now.Day, now.Year);
Assert.AreEqual (expected, date.ToString (CultureInfo.InvariantCulture));
//seconds
date = DateTimeOffset.ParseExact ("45", "ss", CultureInfo.InvariantCulture, style);
expected = string.Format ("{0:D2}/{1:D2}/{2} 00:00:45 +00:00", now.Month, now.Day, now.Year);
Assert.AreEqual (expected, date.ToString (CultureInfo.InvariantCulture));
}
}
}