Exemple #1
0
 public void TestRDP_EmptyStream()
 {
     using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes("")))
     {
         Assert.IsTrue(DateTimeZoneParser.ParseEndOfStream(ms));
     }
 }
Exemple #2
0
 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));
     }
 }
Exemple #3
0
 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);
     }
 }
Exemple #4
0
 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);
     }
 }
Exemple #5
0
        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));
                }
            }
        }