@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 shouldMarshalWithPadding() throws Exception { PaddedInner inner = new PaddedInner(); inner.setA(12); inner.setB(34); PaddedOuter outer = new PaddedOuter(); outer.setInner(inner); outer.setC(56); Marshaller marshaller = dadlContext.createMarshaller(); ByteArrayOutputStream os = new ByteArrayOutputStream(); marshaller.marshal(outer, os); assertThat(os.toByteArray().length, is(11)); ByteArrayBitStreamReader reader = new ByteArrayBitStreamReader(os.toByteArray()); assertThat(reader.readShort(), is((short) 12)); assertThat(reader.readShort(), is((short) 34)); reader.skipBytes(5); assertThat(reader.readShort(), is((short) 56)); reader.close(); }
@Test public void shouldMarshalBcdSequence() throws Exception { BcdSequence bcdSequence = new BcdSequence(); bcdSequence.setI16(9999); bcdSequence.setBcd(2011); Marshaller marshaller = dadlContext.createMarshaller(); ByteArrayOutputStream os = new ByteArrayOutputStream(); marshaller.marshal(bcdSequence, os); assertThat(os.toByteArray().length, is(4)); ByteArrayBitStreamReader reader = new ByteArrayBitStreamReader(os.toByteArray()); assertThat(reader.readShort(), is((short) 9999)); assertThat(reader.readByte(), is((byte) 0x20)); assertThat(reader.readByte(), is((byte) 0x11)); reader.close(); }