コード例 #1
0
        public void MainTest()
        {
            var     u1 = default(EmberId);
            var     n1 = this.Random.Next();
            var     n2 = n1 + 1;
            var     a1 = EmberId.CreateApplication(n1);
            var     a2 = EmberId.CreateApplication(n2);
            var     c1 = EmberId.CreateContextSpecific(n1);
            EmberId p1;

            using (var stream = new MemoryStream(new byte[] { 0xE0, 0x03, 0x01, 0x01, 0xFF }))
                using (var reader = new EmberReader(stream, 1))
                {
                    reader.Read();
                    p1 = reader.OuterId;
                }

            TestStructEquality(a1, a2, (l, r) => l == r, (l, r) => l != r);
            TestStructEquality(a1, c1, (l, r) => l == r, (l, r) => l != r);

            TestParse(u1);
            TestParse(a1);
            TestParse(c1);
            TestParse(p1);

            EmberId dummy;

            Assert.IsFalse(EmberId.TryParse("S-234", out dummy));
            Assert.IsFalse(EmberId.TryParse("U+234", out dummy));
            Assert.IsFalse(EmberId.TryParse("P--234", out dummy));
            Assert.IsFalse(EmberId.TryParse("A-89345734579385749354", out dummy));
        }
コード例 #2
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        private static void TestParse(EmberId emberId)
        {
            EmberId parsed;

            Assert.IsTrue(EmberId.TryParse(emberId.ToString(), out parsed));
            Assert.AreEqual(emberId, parsed);
            Console.WriteLine(emberId);
        }
コード例 #3
0
        private EmberId GetFieldId(FieldPath <string, string> fieldPath)
        {
            EmberId emberId;

            if (this.fieldIds.TryGetValue(fieldPath, out emberId) ||
                EmberId.TryParse(fieldPath.Tail.GetValueOrDefault().FieldId, out emberId))
            {
                return(emberId);
            }

            throw new XmlException(string.Format(InvariantCulture, "Unknown field path: {0}.", fieldPath));
        }
コード例 #4
0
        private int GetInnerNumber(string type)
        {
            int innerNumber;

            if (this.innerNumbers.TryGetValue(type, out innerNumber))
            {
                return(innerNumber);
            }

            EmberId id;
            int?    innerNumberCandidate;

            if (EmberId.TryParse(type, out id) && (innerNumberCandidate = id.ToInnerNumber()).HasValue)
            {
                return(innerNumberCandidate.Value);
            }

            throw new XmlException(string.Format(InvariantCulture, "Unknown type: {0}.", type));
        }