@Test public void shouldMarshalAllNumbers() throws IOException { ShortNumbers sn = new ShortNumbers(); sn.setI8((byte) 5); sn.setU8((short) 200); sn.setI16((short) 1000); sn.setU16(50000); LongNumbers ln = new LongNumbers(); ln.setI32(-100000); ln.setU32(3_000_000_000L); ln.setI24(5_000_000); ln.setU24(10_000_000); AllNumbers an = new AllNumbers(); an.setShortNumbers(sn); an.setLongNumbers(ln); ByteArrayOutputStream os = new ByteArrayOutputStream(); Marshaller marshaller = dadlContext.createMarshaller(); marshaller.marshal(an, os); byte[] bytes = os.toByteArray(); assertThat(bytes.length, is(20)); ByteArrayBitStreamReader reader = new ByteArrayBitStreamReader(bytes); assertThat(reader.readByte(), is((byte) 5)); assertThat(reader.readUnsignedByte(), is(200)); assertThat(reader.readShort(), is((short) 1000)); assertThat(reader.readUnsignedShort(), is(50000)); assertThat(reader.readBits(24), is(5_000_000L)); assertThat(reader.readBits(24), is(10_000_000L)); assertThat(reader.readInt(), is(-100000)); assertThat(reader.readUnsignedInt(), is(3_000_000_000L)); reader.close(); }
@Test public void shouldIgnoreMemberWhenOutputValueCalc() throws Exception { NumberList numberList = new NumberList(); numberList.getItems().addAll(Arrays.asList(16, 25, 36)); Marshaller marshaller = dadlContext.createMarshaller(); ByteArrayOutputStream os = new ByteArrayOutputStream(); marshaller.marshal(numberList, os); assertThat(os.toByteArray().length, is(13)); ByteArrayBitStreamReader reader = new ByteArrayBitStreamReader(os.toByteArray()); assertThat(reader.readUnsignedByte(), is(3)); assertThat(reader.readInt(), is(16)); assertThat(reader.readInt(), is(25)); assertThat(reader.readInt(), is(36)); reader.close(); }
@Test public void shouldMarshalSeqMinLengthNoPadding() throws Exception { SeqMinLength sml = new SeqMinLength(); NumberList list = new NumberList(); list.getItems().add(17); list.getItems().add(39); list.getItems().add(23); list.getItems().add(12); list.getItems().add(92); sml.setNumberList(list); Marshaller marshaller = dadlContext.createMarshaller(); ByteArrayOutputStream os = new ByteArrayOutputStream(); marshaller.marshal(sml, os); assertThat(os.toByteArray().length, is(21)); ByteArrayBitStreamReader reader = new ByteArrayBitStreamReader(os.toByteArray()); assertThat(reader.readByte(), is((byte) 5)); assertThat(reader.readInt(), is(17)); assertThat(reader.readInt(), is(39)); assertThat(reader.readInt(), is(23)); assertThat(reader.readInt(), is(12)); assertThat(reader.readInt(), is(92)); reader.close(); }
@Test public void shouldMarshalOpaqueContainer() throws Exception { OpaqueContainer oc = new OpaqueContainer(); oc.setContent("DADL".getBytes()); oc.setLength(oc.getContent().length); Marshaller marshaller = dadlContext.createMarshaller(); ByteArrayOutputStream os = new ByteArrayOutputStream(); marshaller.marshal(oc, os); ByteArrayBitStreamReader reader = new ByteArrayBitStreamReader(os.toByteArray()); assertThat(reader.readInt(), is(4)); assertThat(reader.readByte(), is((byte) 'D')); assertThat(reader.readByte(), is((byte) 'A')); assertThat(reader.readByte(), is((byte) 'D')); assertThat(reader.readByte(), is((byte) 'L')); reader.close(); }