use of org.openmuc.jasn1.ber.types.BerBoolean in project jasn1 by openmuc.
the class TaggingTest method explicitlyTaggedSequenceTest.
@Test
public void explicitlyTaggedSequenceTest() throws Exception {
ExplicitlyTaggedSequence sequence = new ExplicitlyTaggedSequence();
sequence.setMyInteger(new BerInteger(1));
sequence.setMyBoolean(new BerBoolean(true));
ReverseByteArrayOutputStream os = new ReverseByteArrayOutputStream(1000);
sequence.encode(os);
Assert.assertArrayEquals(DatatypeConverter.parseHexBinary("BF210830060201010101FF"), os.getArray());
sequence = new ExplicitlyTaggedSequence();
sequence.decode(new ByteArrayInputStream(os.getArray()));
Assert.assertNotNull(sequence.getMyInteger());
Assert.assertNotNull(sequence.getMyBoolean());
}
use of org.openmuc.jasn1.ber.types.BerBoolean in project jasn1 by openmuc.
the class BerBoolean method decode.
public int decode(InputStream is, boolean withTag) throws IOException {
int codeLength = 0;
if (withTag) {
codeLength += tag.decodeAndCheck(is);
}
BerLength length = new BerLength();
codeLength += length.decode(is);
if (length.val != 1) {
throw new IOException("Decoded length of BerBoolean is not correct");
}
int nextByte = is.read();
if (nextByte == -1) {
throw new EOFException("Unexpected end of input stream.");
}
codeLength++;
if (nextByte == 0) {
value = false;
} else {
value = true;
}
return codeLength;
}
use of org.openmuc.jasn1.ber.types.BerBoolean in project jasn1 by openmuc.
the class TaggingTest method explicitlyTaggedSetTest.
@Test
public void explicitlyTaggedSetTest() throws Exception {
ExplicitlyTaggedSet set = new ExplicitlyTaggedSet();
set.setMyInteger(new BerInteger(1));
set.setMyBoolean(new BerBoolean(true));
ReverseByteArrayOutputStream os = new ReverseByteArrayOutputStream(1000);
set.encode(os);
Assert.assertArrayEquals(DatatypeConverter.parseHexBinary("BF210831060201010101FF"), os.getArray());
set = new ExplicitlyTaggedSet();
set.decode(new ByteArrayInputStream(os.getArray()));
Assert.assertNotNull(set.getMyInteger());
Assert.assertNotNull(set.getMyBoolean());
}
use of org.openmuc.jasn1.ber.types.BerBoolean in project jasn1 by openmuc.
the class TaggingTest method sequenceOfDirectTypesTest.
@Test
public void sequenceOfDirectTypesTest() throws Exception {
SequenceOfDirectTypes sequence = new SequenceOfDirectTypes();
sequence.setUntaggedInt(new BerInteger(1));
sequence.setExplicitlyTaggedInt(new BerInteger(2));
sequence.setImplicitlyTaggedInt(new BerInteger(3));
UntaggedChoice untaggedChoice = new UntaggedChoice();
untaggedChoice.setMyBoolean(new BerBoolean(true));
sequence.setUntaggedChoice(untaggedChoice);
SequenceOfDirectTypes.TaggedChoice taggedChoice = new SequenceOfDirectTypes.TaggedChoice();
taggedChoice.setMyInteger(new BerInteger(4));
sequence.setTaggedChoice(taggedChoice);
sequence.setTaggedAny(new BerAny(new byte[] { 2, 1, 1 }));
ReverseByteArrayOutputStream os = new ReverseByteArrayOutputStream(1000);
sequence.encode(os);
Assert.assertArrayEquals(DatatypeConverter.parseHexBinary("BF2B18020101A1030201028201038401FFA503830104A603020101"), os.getArray());
sequence = new SequenceOfDirectTypes();
sequence.decode(new ByteArrayInputStream(os.getArray()));
Assert.assertEquals(1, sequence.getUntaggedInt().value.intValue());
Assert.assertEquals(2, sequence.getExplicitlyTaggedInt().value.intValue());
Assert.assertEquals(3, sequence.getImplicitlyTaggedInt().value.intValue());
Assert.assertEquals(true, untaggedChoice.getMyBoolean().value);
Assert.assertEquals(4, sequence.getTaggedChoice().getMyInteger().value.intValue());
System.out.println(DatatypeConverter.printHexBinary(sequence.getTaggedAny().value));
Assert.assertArrayEquals(DatatypeConverter.parseHexBinary("020101"), sequence.getTaggedAny().value);
Assert.assertNull(sequence.getUntaggedChoice2());
}
Aggregations