### Question:
TextPaneAdapter implements GriffonPivotAdapter, org.apache.pivot.wtk.TextPaneListener { public void documentChanged(org.apache.pivot.wtk.TextPane arg0, org.apache.pivot.wtk.text.Document arg1) { if (documentChanged != null) { documentChanged.call(arg0, arg1); } }  CallableWithArgs<Void> getDocumentChanged(); CallableWithArgs<Void> getEditableChanged(); void setDocumentChanged(CallableWithArgs<Void> documentChanged); void setEditableChanged(CallableWithArgs<Void> editableChanged); void documentChanged(org.apache.pivot.wtk.TextPane arg0, org.apache.pivot.wtk.text.Document arg1); void editableChanged(org.apache.pivot.wtk.TextPane arg0);  }### Answer:
@Test public void testDocumentChanged() { final boolean[] invoked = new boolean[1]; CallableWithArgs<Void> callable = new CallableWithArgs<Void>() { public Void call(Object... args) { invoked[0] = true; return null; } }; assertNull(adapter.getDocumentChanged()); adapter.documentChanged(null, null); assertFalse(invoked[0]); adapter.setDocumentChanged(callable); adapter.documentChanged(null, null); assertTrue(invoked[0]); }