From 0556ef80a26281cbc843e1f1c005d3441d050999 Mon Sep 17 00:00:00 2001 From: elie Date: Mon, 28 Jan 2013 08:13:46 +0000 Subject: some more CHOICE codec test cases added --- test/codec/ber/encoder.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/test/codec/ber/encoder.py b/test/codec/ber/encoder.py index 0b95943..87ab038 100644 --- a/test/codec/ber/encoder.py +++ b/test/codec/ber/encoder.py @@ -279,7 +279,8 @@ class ChoiceEncoderTestCase(unittest.TestCase): def setUp(self): self.s = univ.Choice(componentType=namedtype.NamedTypes( namedtype.NamedType('place-holder', univ.Null('')), - namedtype.NamedType('number', univ.Integer(0)) + namedtype.NamedType('number', univ.Integer(0)), + namedtype.NamedType('string', univ.OctetString()) )) def testEmpty(self): @@ -296,11 +297,22 @@ class ChoiceEncoderTestCase(unittest.TestCase): def testTagged(self): s = self.s.subtype( - explicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4) - ) + explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,4) + ) s.setComponentByPosition(0, univ.Null('')) assert encoder.encode(s) == ints2octs((164, 2, 5, 0)) + def testUndefLength(self): + self.s.setComponentByPosition(2, univ.OctetString('abcdefgh')) + assert encoder.encode(self.s, defMode=False, maxChunkSize=3) == ints2octs((36, 128, 4, 3, 97, 98, 99, 4, 3, 100, 101, 102, 4, 2, 103, 104, 0, 0)) + + def testTaggedUndefLength(self): + s = self.s.subtype( + explicitTag=tag.Tag(tag.tagClassContext,tag.tagFormatConstructed,4) + ) + s.setComponentByPosition(2, univ.OctetString('abcdefgh')) + assert encoder.encode(s, defMode=False, maxChunkSize=3) == ints2octs((164, 128, 36, 128, 4, 3, 97, 98, 99, 4, 3, 100, 101, 102, 4, 2, 103, 104, 0, 0, 0, 0)) + class AnyEncoderTestCase(unittest.TestCase): def setUp(self): self.s = univ.Any(encoder.encode(univ.OctetString('fox'))) -- cgit v1.2.1