@Test(groups = {"functional.decode", "circuitSwitchedCall.primitive"})
  public void testDecode() throws Exception {

    byte[] data = this.getData1();
    AsnInputStream ais = new AsnInputStream(data);
    VariableMessageImpl elem = new VariableMessageImpl();
    int tag = ais.readTag();
    assertEquals(tag, Tag.SEQUENCE);
    elem.decodeAll(ais);
    assertEquals(elem.getElementaryMessageID(), 800);
    assertEquals(elem.getVariableParts().size(), 2);
    assertEquals((int) elem.getVariableParts().get(0).getInteger(), 111);
    assertEquals((int) elem.getVariableParts().get(1).getTime().getHour(), 23);
    assertEquals((int) elem.getVariableParts().get(1).getTime().getMinute(), 59);
  }
        @Override
        public void write(VariableMessageImpl obj, javolution.xml.XMLFormat.OutputElement xml)
            throws XMLStreamException {

          xml.add(obj.getElementaryMessageID(), ELEMENTARY_MESSAGE_ID, Integer.class);

          for (VariablePart vp : obj.getVariableParts()) {
            xml.add((VariablePartImpl) vp, VARIABLE_PART, VariablePartImpl.class);
          }
        }