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"); }
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"); }
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); }
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"); }
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"); }
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."); }
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); }
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."); }
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"); }
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."); }
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; } } }
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"); }
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"); }