コード例 #1
0
        public void TestHashCode()
        {
            CompositeTestTag tag = new CompositeTestTag(0x1, false, false,
                                                        new ITlvTag[] { new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 }), new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 }) });

            Assert.AreEqual(32899, tag.GetHashCode(), "Tag hash code should be correct");
        }
コード例 #2
0
        public void TestCompositeTagCreateFromTlvTag()
        {
            CompositeTestTag tag = new CompositeTestTag(new RawTag(0x1, true, false, new byte[] { 0x41, 0x2, 0x1, 0x2, 0x42, 0x2, 0x3, 0x4 }));

            Assert.AreEqual(0x1, tag.Type, "Tag type should be correct");
            Assert.True(tag.NonCritical, "Tag non critical flag should be correct");
            Assert.IsFalse(tag.Forward, "Tag forward flag should be correct");
            CollectionAssert.AreEqual(new ITlvTag[] { new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 }), new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 }) }, tag,
                                      "Tag value should be decoded correctly");
        }
コード例 #3
0
        public void TestVerifyCriticalFlag()
        {
            CompositeTestTag      tag = new CompositeTestTag(0x1, false, false, new ITlvTag[] { });
            ArgumentNullException ex  = Assert.Throws <ArgumentNullException>(delegate
            {
                tag.VerifyCriticalFlagWithoutTag();
            });

            Assert.AreEqual("tag", ex.ParamName);
        }
コード例 #4
0
        public void TestCompositeTagSettingAndGettingValue()
        {
            CompositeTestTag tag = new CompositeTestTag(0x1, false, false,
                                                        new ITlvTag[]
            {
                new CompositeTestTag(0x5, true, false,
                                     new ITlvTag[] { new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 }), new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 }) })
            });

            CollectionAssert.AreEqual(new ITlvTag[] { new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 }), new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 }) },
                                      tag.CompositeTestTagValue, "1. Tag child value should be decoded correctly");
            CollectionAssert.AreEqual(new byte[] { 0x45, 0x8, 0x41, 0x2, 0x1, 0x2, 0x42, 0x2, 0x3, 0x4 }, tag.EncodeValue(), "2. Tag value should be encoded correctly");
        }
コード例 #5
0
        public void TlvTagBuilderGetTagByTypeReturnNullTest()
        {
            RawTag child1 = new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 });

            CompositeTestTag tag = new CompositeTestTag(0x1, false, false,
                                                        new ITlvTag[]
            {
                child1,
            });

            TlvTagBuilder builder = new TlvTagBuilder(tag);

            ITlvTag searchedTag = builder.GetChildByType(0x2);

            Assert.IsNull(searchedTag, "Invalid return tag");
        }
コード例 #6
0
        public void TlvTagBuilderGetTagByTypeTest()
        {
            RawTag child1 = new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 });
            RawTag child2 = new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 });

            CompositeTestTag tag = new CompositeTestTag(0x1, false, false,
                                                        new ITlvTag[]
            {
                child1,
                child2
            });

            TlvTagBuilder builder = new TlvTagBuilder(tag);

            ITlvTag seachedTag = builder.GetChildByType(0x2);

            CollectionAssert.AreEqual(seachedTag.EncodeValue(), child2.EncodeValue(), "Invalid child returned.");
        }
コード例 #7
0
        public void TlvTagBuilderRemoveNullTest()
        {
            RawTag child1 = new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 });

            CompositeTestTag tag = new CompositeTestTag(0x1, false, false,
                                                        new ITlvTag[]
            {
                child1
            });

            TlvTagBuilder builder = new TlvTagBuilder(tag);

            ArgumentNullException ex = Assert.Throws <ArgumentNullException>(delegate
            {
                builder.RemoveChildTag(null);
            });

            Assert.AreEqual("childTag", ex.ParamName);
        }
コード例 #8
0
        public void TlvTagBuilderAddTest()
        {
            RawTag child1 = new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 });
            RawTag child2 = new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 });

            CompositeTestTag tag = new CompositeTestTag(0x1, false, false,
                                                        new ITlvTag[]
            {
                child1
            });

            TlvTagBuilder builder = new TlvTagBuilder(tag);

            builder.AddChildTag(child2);

            CompositeTestTag newTag = new CompositeTestTag(builder.BuildTag());

            CollectionAssert.AreEqual(newTag[1].EncodeValue(), child2.EncodeValue(), "Invalid second child.");
        }
コード例 #9
0
        public void TestToString()
        {
            CompositeTestTag tag = new CompositeTestTag(0x1, true, true,
                                                        new ITlvTag[]
            {
                new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 }),
                new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 }),
                new CompositeTestTag(0x5, true, false, new ITlvTag[] { new RawTag(0x1, true, false, new byte[] { 8, 9 }) })
            });

            string expected = "TLV[0x1,N,F]:" + Environment.NewLine + "  TLV[0x1,N]:0x0102" + Environment.NewLine + "  TLV[0x2,N]:0x0304" + Environment.NewLine + "  TLV[0x5,N]:" +
                              Environment.NewLine +
                              "    TLV[0x1,N]:0x0809";

            Assert.AreEqual(expected, tag.ToString(), "1. Tag string representation should be correct");

            tag = new CompositeTestTag(new RawTag(tag.Type, tag.NonCritical, tag.Forward, tag.EncodeValue()));

            Assert.AreEqual(expected, tag.ToString(), "2. Tag string representation should be correct");
        }
コード例 #10
0
        public void TlvTagBuilderRemoveTest()
        {
            RawTag child1 = new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 });
            RawTag child2 = new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 });

            CompositeTestTag tag = new CompositeTestTag(0x1, false, false,
                                                        new ITlvTag[]
            {
                child1,
                child2
            });

            TlvTagBuilder builder = new TlvTagBuilder(tag);

            builder.RemoveChildTag(child1);

            CompositeTestTag newTag = new CompositeTestTag(builder.BuildTag());

            Assert.AreEqual(1, newTag.Count, "Invalid child tag count.");
            CollectionAssert.AreEqual(newTag[0].EncodeValue(), child2.EncodeValue(), "Invalid first child.");
        }
コード例 #11
0
        private void BuildStructure()
        {
            for (int i = 0; i < Count; i++)
            {
                ITlvTag childTag = this[i];

                switch (childTag.Type)
                {
                case 0x5:
                    this[i] = CompositeTestTagValue = childTag as CompositeTestTag ?? new CompositeTestTag(childTag);
                    break;

                case 0x2:
                case 0x1:
                    break;

                default:
                    VerifyUnknownTag(childTag);
                    break;
                }
            }
        }
コード例 #12
0
        public void TestEquals()
        {
            CompositeTestTag tag = new CompositeTestTag(0x1, false, false,
                                                        new ITlvTag[] { new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 }), new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 }) });

            Assert.AreEqual(
                new CompositeTestTag(0x1, false, false,
                                     new ITlvTag[] { new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 }), new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 }) }), tag, "1. Tags should be equal");
            Assert.IsTrue(
                tag ==
                new CompositeTestTag(0x1, false, false,
                                     new ITlvTag[] { new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 }), new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 }) }), "2. Tags should be equal");
            Assert.IsTrue(
                tag !=
                new ChildCompositeTestTag(0x1, false, false,
                                          new ITlvTag[] { new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 }), new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 }) }), "3. Tags should be equal");
            Assert.IsFalse(
                new CompositeTestTag(0x2, false, false,
                                     new ITlvTag[] { new RawTag(0x1, true, false, new byte[] { 0x1, 0x2 }), new RawTag(0x2, true, false, new byte[] { 0x3, 0x4 }) }) == tag,
                "4. Tags should not be equal");
            Assert.IsFalse(tag.Equals(new RawTag(0x1, true, false, new byte[] { })), "5. Tags should not be equal");
        }
コード例 #13
0
        public void TestEncodeValue()
        {
            CompositeTestTag tag = new CompositeTestTag(new RawTag(0x1, true, false, new byte[] { 0x41, 0x2, 0x1, 0x2, 0x42, 0x2, 0x3, 0x4 }));

            CollectionAssert.AreEqual(new byte[] { 0x41, 0x2, 0x1, 0x2, 0x42, 0x2, 0x3, 0x4 }, tag.EncodeValue(), "Tag should encode value correctly");
        }