  @Test
  public void testNewKey() throws Exception {

    failExpected(null, "Null message");

    OtpKeyRequest r = new OtpKeyRequest();
    failExpected(r, "mt message");

    r.setOtpSystemId(CLEAR_CHANNEL_ID);
    r.setKeyFunction(KeyFunction.NEW);

    r.setKeySize(-32);
    failExpected(r, "negative size");

    r.setKeySize(KEY_SIZE);
    r.setKeyFunction(null);
    failExpected(r, "No key function");

    r.setKeyFunction(KeyFunction.NEW);
    r.setKeySize(maxKeySize + 1);
    failExpected(r, "> max key size");

    r.setKeySize(KEY_SIZE);

    Response rep = processor.process(r);

    assertEquals(ResponseCode.SUCCESS, rep.getResponseCode());
    assertNotNull(rep.getPayload());
    assertEquals(1, rep.getPayload().length);
    assertTrue(rep.getPayload()[0] instanceof byte[]);

    byte[] b = (byte[]) rep.getPayload()[0];

    assertEquals(KEY_SIZE.intValue(), b.length);
  }