diff options
author | elie <elie> | 2013-01-28 07:59:11 +0000 |
---|---|---|
committer | elie <elie> | 2013-01-28 07:59:11 +0000 |
commit | ff8afb479a5f2da83f67e41708496e494a5fad2e (patch) | |
tree | 92ea886c54ace2523aef6abd800a7869fafa3b28 | |
parent | d28ef8c284756d880522d8dd2f630590329d02cc (diff) | |
download | pyasn1-ff8afb479a5f2da83f67e41708496e494a5fad2e.tar.gz |
some more testcases for CHOICE codec added
-rw-r--r-- | test/codec/ber/decoder.py | 19 |
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() |