### Question:
ComponentKeyAdapter implements GriffonPivotAdapter, org.apache.pivot.wtk.ComponentKeyListener { public boolean keyReleased(org.apache.pivot.wtk.Component arg0, int arg1, org.apache.pivot.wtk.Keyboard.KeyLocation arg2) { return keyReleased != null && keyReleased.call(arg0, arg1, arg2); }  CallableWithArgs<Boolean> getKeyTyped(); CallableWithArgs<Boolean> getKeyPressed(); CallableWithArgs<Boolean> getKeyReleased(); void setKeyTyped(CallableWithArgs<Boolean> keyTyped); void setKeyPressed(CallableWithArgs<Boolean> keyPressed); void setKeyReleased(CallableWithArgs<Boolean> keyReleased); boolean keyTyped(org.apache.pivot.wtk.Component arg0, char arg1); boolean keyPressed(org.apache.pivot.wtk.Component arg0, int arg1, org.apache.pivot.wtk.Keyboard.KeyLocation arg2); boolean keyReleased(org.apache.pivot.wtk.Component arg0, int arg1, org.apache.pivot.wtk.Keyboard.KeyLocation arg2);  }### Answer:
@Test public void testKeyReleased() { final boolean[] invoked = new boolean[1]; CallableWithArgs<Boolean> callable = new CallableWithArgs<Boolean>() { public Boolean call(Object... args) { invoked[0] = true; return false; } }; assertNull(adapter.getKeyReleased()); adapter.keyReleased(null, 0, null); assertFalse(invoked[0]); adapter.setKeyReleased(callable); adapter.keyReleased(null, 0, null); assertTrue(invoked[0]); adapter.setKeyReleased(new CallableWithArgs<Boolean>() { public Boolean call(Object... args) { invoked[0] = true; return true; } }); adapter.keyReleased(null, 0, null); assertTrue(invoked[0]); }