@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 shouldParseAllNumbers() throws IOException { ByteArrayBitStreamWriter writer = new ByteArrayBitStreamWriter(); writer.writeBits(5, 8); writer.writeBits(200, 8); writer.writeBits(1000, 16); writer.writeBits(50000, 16); writer.writeBits(5_000_000L, 24); writer.writeBits(10_000_000L, 24); writer.writeInt(-100000); writer.writeUnsignedInt(3_000_000_000L); writer.close(); byte[] bytes = writer.toByteArray(); assertThat(bytes.length, is(20)); Unmarshaller parser = dadlContext.createUnmarshaller(); AllNumbers an = parser.unmarshal(bytes, AllNumbers.class); assertThat(an, is(notNullValue())); ShortNumbers sn = an.getShortNumbers(); assertThat(sn, is(notNullValue())); assertThat(sn.getI8(), is(5)); assertThat(sn.getU8(), is(200)); assertThat(sn.getI16(), is(1000)); assertThat(sn.getU16(), is(50000)); LongNumbers ln = an.getLongNumbers(); assertThat(ln, is(notNullValue())); assertThat(ln.getI24(), is(5_000_000)); assertThat(ln.getU24(), is(10_000_000)); assertThat(ln.getI32(), is(-100_000)); assertThat(ln.getU32(), is(3_000_000_000L)); }