summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2013-01-28 07:59:11 +0000
committerelie <elie>2013-01-28 07:59:11 +0000
commitff8afb479a5f2da83f67e41708496e494a5fad2e (patch)
tree92ea886c54ace2523aef6abd800a7869fafa3b28
parentd28ef8c284756d880522d8dd2f630590329d02cc (diff)
downloadpyasn1-ff8afb479a5f2da83f67e41708496e494a5fad2e.tar.gz
some more testcases for CHOICE codec added
-rw-r--r--test/codec/ber/decoder.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/test/codec/ber/decoder.py b/test/codec/ber/decoder.py
index 115d811..c16d32c 100644
--- a/test/codec/ber/decoder.py
+++ b/test/codec/ber/decoder.py
@@ -448,7 +448,8 @@ class ChoiceDecoderTestCase(unittest.TestCase):
def setUp(self):
self.s = univ.Choice(componentType=namedtype.NamedTypes(
namedtype.NamedType('place-holder', univ.Null(null)),
- namedtype.NamedType('number', univ.Integer(0))
+ namedtype.NamedType('number', univ.Integer(0)),
+ namedtype.NamedType('string', univ.OctetString())
))
def testBySpec(self):
@@ -462,6 +463,22 @@ class ChoiceDecoderTestCase(unittest.TestCase):
assert decoder.decode(ints2octs((5, 0))) == (self.s, null)
assert decoder.decode(ints2octs((5, 0))) == (univ.Null(null), null)
+ def testUndefLength(self):
+ self.s.setComponentByPosition(2, univ.OctetString('abcdefgh'))
+ assert decoder.decode(ints2octs((36, 128, 4, 3, 97, 98, 99, 4, 3, 100, 101, 102, 4, 2, 103, 104, 0, 0)), asn1Spec=self.s) == (self.s, null)
+
+ def testExplicitTag(self):
+ s = self.s.subtype(explicitTag=tag.Tag(tag.tagClassContext,
+ tag.tagFormatConstructed, 4))
+ s.setComponentByPosition(0, univ.Null(null))
+ assert decoder.decode(ints2octs((164, 2, 5, 0)), asn1Spec=s) == (s, null)
+
+ def testExplicitTagUndefLength(self):
+ s = self.s.subtype(explicitTag=tag.Tag(tag.tagClassContext,
+ tag.tagFormatConstructed, 4))
+ s.setComponentByPosition(0, univ.Null(null))
+ assert decoder.decode(ints2octs((164, 128, 5, 0, 0, 0)), asn1Spec=s) == (s, null)
+
class AnyDecoderTestCase(unittest.TestCase):
def setUp(self):
self.s = univ.Any()