@Test
  public void consoleLinesAsListValid() {
    final ConsoleScriptResponseMessage msg = new ConsoleScriptResponseMessage();
    msg.ConsoleLines = new String[] {"a", "b", "c"};

    final List<String> lines = msg.consoleLinesAsList();
    Assert.assertEquals(3, lines.size());
    Assert.assertEquals("a", lines.get(0));
    Assert.assertEquals("b", lines.get(1));
    Assert.assertEquals("c", lines.get(2));
  }
  @Test
  public void bindingsAsListValid() throws IOException {
    final ConsoleScriptResponseMessage msg = new ConsoleScriptResponseMessage();
    msg.Bindings.put("a", "aaa");
    msg.Bindings.put("b", "bbb");
    msg.Bindings.put("c", 3);

    final List<String> bindingsList = msg.bindingsAsList();
    Assert.assertEquals(3, bindingsList.size());
    Assert.assertEquals("a=aaa", bindingsList.get(2));
    Assert.assertEquals("b=bbb", bindingsList.get(0));
    Assert.assertEquals("c=3", bindingsList.get(1));
  }
  @Test
  public void testSerialization() {
    MessagePack msgpack = new MessagePack();
    msgpack.register(
        RexProMessageMeta.class, RexProMessageMeta.SerializationTemplate.getInstance());
    msgpack.register(RexProBindings.class, RexProBindings.SerializationTemplate.getInstance());
    msgpack.register(
        RexProScriptResult.class, RexProScriptResult.SerializationTemplate.getInstance());

    ConsoleScriptResponseMessage outMsg = new ConsoleScriptResponseMessage();
    outMsg.setRequestAsUUID(UUID.randomUUID());
    outMsg.setSessionAsUUID(UUID.randomUUID());
    outMsg.ConsoleLines = new String[2];
    outMsg.ConsoleLines[0] = "a";
    outMsg.ConsoleLines[1] = "b";
    outMsg.Bindings.put("o", 1);

    final ByteArrayOutputStream outStream = new ByteArrayOutputStream();
    final Packer packer = msgpack.createPacker(outStream);
    try {
      packer.write(outMsg);
      packer.close();
    } catch (IOException ex) {
      Assert.fail();
    }

    byte[] bytes = outStream.toByteArray();

    final ByteArrayInputStream in = new ByteArrayInputStream(bytes);
    final Unpacker unpacker = msgpack.createUnpacker(in);

    ConsoleScriptResponseMessage inMsg;
    try {
      inMsg = unpacker.read(ConsoleScriptResponseMessage.class);
      Assert.assertEquals(outMsg.Meta, inMsg.Meta);
      Assert.assertEquals(
          UUID.nameUUIDFromBytes(outMsg.Request), UUID.nameUUIDFromBytes(inMsg.Request));
      Assert.assertEquals(
          UUID.nameUUIDFromBytes(outMsg.Session), UUID.nameUUIDFromBytes(inMsg.Session));
      Assert.assertTrue(Arrays.deepEquals(outMsg.ConsoleLines, inMsg.ConsoleLines));
      Assert.assertEquals(inMsg.Bindings.get("o"), 1);
    } catch (IOException ex) {
      Assert.fail();
    }
  }