summaryrefslogtreecommitdiff
path: root/test/codec/ber/encoder.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/codec/ber/encoder.py')
-rw-r--r--test/codec/ber/encoder.py18
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')))