public void TestRDP_RequiredHexDigits() { // fails due to end of stream using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(""))) { int?result; // required Assert.IsFalse(DateTimeZoneParser.ParseHexDigits(ms, null, true, out result)); // optional Assert.IsTrue(DateTimeZoneParser.ParseHexDigits(ms, null, false, out result)); Assert.IsFalse(result.HasValue); Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); Assert.IsFalse(result.HasValue); } // any value using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes("1ff FFFF"))) { int? result; char?space; Assert.AreEqual <long>(0, ms.Position); Assert.IsTrue(DateTimeZoneParser.ParseHexDigits(ms, null, true, out result)); Assert.AreEqual <long>(3, ms.Position); Assert.IsTrue(result.HasValue); Assert.AreEqual <int>(511, result.Value); Assert.IsTrue(DateTimeZoneParser.ParseChar(ms, ' ', true, out space)); Assert.AreEqual <long>(4, ms.Position); Assert.IsTrue(DateTimeZoneParser.ParseHexDigits(ms, null, true, out result)); Assert.AreEqual <long>(8, ms.Position); Assert.IsTrue(result.HasValue); Assert.AreEqual <int>(65535, result.Value); Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); } }
public void TestRDP_EmptyStream() { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(""))) { Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); } }
public void TestDTZParserPassesForTimeWithFractionalSecondsPlusZone() { var dtz = new DateTimeZoneParser("20:08:10.5000000-05:00"); Assert.IsFalse(dtz.DatePart.HasValue); Assert.IsTrue(dtz.TimePart.HasValue); Assert.IsTrue(dtz.ZonePart.HasValue); }
public void TestDTZParserPassesForDateAndTimeAndZone() { var dtz = new DateTimeZoneParser("2012-10-31T23:59:59+10:00"); Assert.IsTrue(dtz.DatePart.HasValue); Assert.IsTrue(dtz.TimePart.HasValue); Assert.IsTrue(dtz.ZonePart.HasValue); }
public void TestDTZParserPassesForDateWithZoneUtc() { var dtz = new DateTimeZoneParser("2012-10-31Z"); Assert.IsTrue(dtz.DatePart.HasValue); Assert.IsFalse(dtz.TimePart.HasValue); Assert.IsTrue(dtz.ZonePart.HasValue); }
public void TestDTZParserPassesForTimeOnly() { var dtz = new DateTimeZoneParser("23:59:59"); Assert.IsFalse(dtz.DatePart.HasValue); Assert.IsTrue(dtz.TimePart.HasValue); Assert.IsFalse(dtz.ZonePart.HasValue); }
public void TestDtzParserPassesForDateWithZoneOffset() { var dtz = new DateTimeZoneParser("2012-10-31-05:00"); Assert.IsTrue(dtz.DatePart.HasValue); Assert.IsFalse(dtz.TimePart.HasValue); Assert.IsTrue(dtz.ZonePart.HasValue); }
public void TestDtzParserPassesForDateAndTime() { var dtz = new DateTimeZoneParser("2012-10-31T23:59:59"); Assert.IsTrue(dtz.DatePart.HasValue); Assert.IsTrue(dtz.TimePart.HasValue); Assert.IsFalse(dtz.ZonePart.HasValue); }
public void TestRDP_OptionalChar() { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(""))) { char?result; Assert.IsTrue(DateTimeZoneParser.ParseChar(ms, '+', false, out result)); Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); Assert.IsFalse(result.HasValue); } using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes("+"))) { char?result; Assert.IsTrue(DateTimeZoneParser.ParseChar(ms, '+', false, out result)); Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); Assert.IsTrue(result.HasValue); Assert.AreEqual <char>('+', result.Value); } }
public void TestRDP_RequiredChar() { // fails due to end of stream using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(""))) { char?result; Assert.IsFalse(DateTimeZoneParser.ParseChar(ms, null, true, out result)); Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); Assert.IsFalse(result.HasValue); } // specific value using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes("+"))) { char?result; Assert.IsTrue(DateTimeZoneParser.ParseChar(ms, '+', true, out result)); Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); Assert.IsTrue(result.HasValue); Assert.AreEqual <char>('+', result.Value); } // any value using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes("*"))) { char?result; Assert.IsTrue(DateTimeZoneParser.ParseChar(ms, null, true, out result)); Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); Assert.IsTrue(result.HasValue); Assert.AreEqual <char>('*', result.Value); } // fails due to incorrect value, but retry succeeds using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes("+"))) { char?result; Assert.IsFalse(DateTimeZoneParser.ParseChar(ms, '-', true, out result)); Assert.IsFalse(result.HasValue); // retry Assert.IsTrue(DateTimeZoneParser.ParseChar(ms, '+', true, out result)); Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); Assert.IsTrue(result.HasValue); Assert.AreEqual <char>('+', result.Value); } }
public void TestRDP_Integers() { List <TestPair <int> > testPairs = new List <TestPair <int> >(); testPairs.Add(new TestPair <int>("", null)); testPairs.Add(new TestPair <int>("123", 123)); testPairs.Add(new TestPair <int>("-123", -123)); testPairs.Add(new TestPair <int>("+123", 123)); testPairs.Add(new TestPair <int>("0x7b", 123)); foreach (var testPair in testPairs) { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(testPair.Input))) { int?result; Assert.IsTrue(DateTimeZoneParser.ParseInt32(ms, false, out result), String.Format("Input='{0}'", testPair.Input)); Assert.AreEqual <int?>(testPair.Result, result, String.Format("Input='{0}'", testPair.Input)); Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); } } }
public void TestDTZParserFailsWithZoneOnly() { var dtz = new DateTimeZoneParser("+10:00"); }
public void TestDTZParserFailsWithWrongTimeSeparatorsB() { var dtz = new DateTimeZoneParser("23/59/59"); }
public void TestDtzParserFailsWithWrongTimeSeparatorsA() { var dtz = new DateTimeZoneParser("23.59.59"); }
public void TestDTZParserFailsWhenInputIsNull() { var dtz = new DateTimeZoneParser(null); }
public void TestDTZParserFailsWithWrongDateSeparatorsC() { var dtz = new DateTimeZoneParser("2012:10:31"); }
public void TestDtzParserFailsWithWrongDateSeparatorsB() { var dtz = new DateTimeZoneParser("2012.10.31"); }