diff options
Diffstat (limited to 'test/codec/ber/encoder.py')
-rw-r--r-- | test/codec/ber/encoder.py | 18 |
1 files 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'))) |