public int writeValue_32()
{
DateTimeOffset actual;
string expect;
bool isPassed = true;
object[] actualArray =
{
new DateTimeOffset(2002,2,1,0,0,0,TimeSpan.FromHours(-8.0)),
new DateTimeOffset(9999,1,1,0,0,0,TimeSpan.FromHours(-8.0)),
new DateTimeOffset(9999,1,1,0,0,0,TimeSpan.FromHours(0)),
new DateTimeOffset(9999,12,31,12,59,59,TimeSpan.FromHours(-11.0)),
new DateTimeOffset(9999,12,31,12,59,59,TimeSpan.FromHours(-10) + TimeSpan.FromMinutes(-59)),
new DateTimeOffset(9999,12,31,12,59,59,new TimeSpan(13,59,0)),
new DateTimeOffset(9999,12,31,23,59,59,TimeSpan.FromHours(0)),
new DateTimeOffset(9999,12,31,23,59,59, new TimeSpan(14,0,0)),
new DateTimeOffset(9999,12,31,23,59,59, new TimeSpan(13,60,0)),
new DateTimeOffset(9999,12,31,23,59,59, new TimeSpan(13,59,60)),
new DateTimeOffset(9998,12,31,12,59,59, new TimeSpan(13,60,0)),
new DateTimeOffset(9998,12,31,12,59,59,TimeSpan.FromHours(-14.0)),
new DateTimeOffset(1,1,1,0,0,0,TimeSpan.FromHours(-8.0)),
new DateTimeOffset(1,1,1,0,0,0,TimeSpan.FromHours(-14.0)),
new DateTimeOffset(1,1,1,0,0,0,TimeSpan.FromHours(-13) + TimeSpan.FromMinutes(-59)),
new DateTimeOffset(1,1,1,0,0,0,TimeSpan.Zero),
};
object[] expectArray =
{
"<Root>2002-02-01T00:00:00-08:00</Root>",
"<Root>9999-01-01T00:00:00-08:00</Root>",
"<Root>9999-01-01T00:00:00Z</Root>",
"<Root>9999-12-31T12:59:59-11:00</Root>",
"<Root>9999-12-31T12:59:59-10:59</Root>",
"<Root>9999-12-31T12:59:59+13:59</Root>",
"<Root>9999-12-31T23:59:59Z</Root>",
"<Root>9999-12-31T23:59:59+14:00</Root>",
"<Root>9999-12-31T23:59:59+14:00</Root>",
"<Root>9999-12-31T23:59:59+14:00</Root>",
"<Root>9998-12-31T12:59:59+14:00</Root>",
"<Root>9998-12-31T12:59:59-14:00</Root>",
"<Root>0001-01-01T00:00:00-08:00</Root>",
"<Root>0001-01-01T00:00:00-14:00</Root>",
"<Root>0001-01-01T00:00:00-13:59</Root>",
"<Root>0001-01-01T00:00:00Z</Root>"
};
for (int i = 0; i < actualArray.Length; i++)
{
actual = (DateTimeOffset)actualArray[i];
expect = (string)expectArray[i];
using (XmlWriter w = CreateWriter())
{
w.WriteStartElement("Root");
w.WriteValue(actual);
w.WriteEndElement();
w.Dispose();
if (!CompareReader((string)expect))
{
isPassed = false;
}
}
}
return (isPassed) ? TEST_PASS : TEST_FAIL;
}