### Question:
ComponentNodeAdapter implements GriffonPivotAdapter, org.apache.pivot.wtk.text.ComponentNodeListener { public void componentChanged(org.apache.pivot.wtk.text.ComponentNode arg0, org.apache.pivot.wtk.Component arg1) { if (componentChanged != null) { componentChanged.call(arg0, arg1); } }  CallableWithArgs<Void> getComponentChanged(); void setComponentChanged(CallableWithArgs<Void> componentChanged); void componentChanged(org.apache.pivot.wtk.text.ComponentNode arg0, org.apache.pivot.wtk.Component arg1);  }### Answer:
@Test public void testComponentChanged() { final boolean[] invoked = new boolean[1]; CallableWithArgs<Void> callable = new CallableWithArgs<Void>() { public Void call(Object... args) { invoked[0] = true; return null; } }; assertNull(adapter.getComponentChanged()); adapter.componentChanged(null, null); assertFalse(invoked[0]); adapter.setComponentChanged(callable); adapter.componentChanged(null, null); assertTrue(invoked[0]); }