using System;\r
using System.Collections.Generic;\r
using System.Text;\r
+using Yubeshi;\r
using NUnit.Framework;\r
\r
namespace YubeshiTest\r
{\r
public class ParserTest\r
{\r
+ private static OctetString noise;\r
+ \r
+ static ParserTest()\r
+ {\r
+ noise = new OctetString(100);\r
+ for (int i = 0; i < noise.Length; ++i)\r
+ {\r
+ noise[i] = (byte)(i & 0x7F | 0x80);\r
+ }\r
+ noise[52, -1] = NmeaTest.SamplePackets.Dummy;\r
+ noise[79, -1] = UbxTest.SamplePackets.Dummy;\r
+ }\r
+\r
[Test]\r
- public void Parse()\r
+ public void Noise()\r
{\r
- \r
+ Parser parser = new Parser();\r
+ UnknownPacket p;\r
+\r
+ parser.Push(noise);\r
+\r
+ p = parser.Peek();\r
+ Assert.IsNull(p);\r
+ }\r
+\r
+ [Test]\r
+ public void NoisePacketsNoise()\r
+ {\r
+ Parser parser = new Parser();\r
+ UnknownPacket p;\r
+\r
+ OctetString data = noise;\r
+ data += NmeaTest.SamplePackets.GpDtm;\r
+ data += UbxTest.SamplePackets.NavClock;\r
+ data += noise;\r
+\r
+ parser.Push(data);\r
+\r
+ int length = 0;\r
+ while (null != (p = parser.Peek()))\r
+ {\r
+ if (p is Yubeshi.Nmea.GpDtm)\r
+ {\r
+ break;\r
+ }\r
+ Assert.IsTrue(p is UnknownPacket);\r
+ length += p.Raw.Length;\r
+ }\r
+ Assert.AreEqual(noise.Length, length);\r
+\r
+ Assert.IsTrue(p is Yubeshi.Nmea.GpDtm);\r
+\r
+ p = parser.Peek();\r
+ Assert.IsTrue(p is Yubeshi.Ubx.NavClock);\r
+\r
+ p = parser.Peek();\r
+ Assert.IsNull(p);\r
}\r
}\r
}\r