public void TestRDP_EmptyStream() { using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(""))) { Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms)); } }
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_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)); } } }