### Question:
ComponentDataAdapter implements GriffonPivotAdapter, org.apache.pivot.wtk.ComponentDataListener { public void valueUpdated(org.apache.pivot.wtk.Component arg0, java.lang.String arg1, java.lang.Object arg2) { if (valueUpdated != null) { valueUpdated.call(arg0, arg1, arg2); } }  CallableWithArgs<Void> getValueAdded(); CallableWithArgs<Void> getValueUpdated(); CallableWithArgs<Void> getValueRemoved(); void setValueAdded(CallableWithArgs<Void> valueAdded); void setValueUpdated(CallableWithArgs<Void> valueUpdated); void setValueRemoved(CallableWithArgs<Void> valueRemoved); void valueAdded(org.apache.pivot.wtk.Component arg0, java.lang.String arg1); void valueUpdated(org.apache.pivot.wtk.Component arg0, java.lang.String arg1, java.lang.Object arg2); void valueRemoved(org.apache.pivot.wtk.Component arg0, java.lang.String arg1, java.lang.Object arg2);  }### Answer:
@Test public void testValueUpdated() { final boolean[] invoked = new boolean[1]; CallableWithArgs<Void> callable = new CallableWithArgs<Void>() { public Void call(Object... args) { invoked[0] = true; return null; } }; assertNull(adapter.getValueUpdated()); adapter.valueUpdated(null, null, null); assertFalse(invoked[0]); adapter.setValueUpdated(callable); adapter.valueUpdated(null, null, null); assertTrue(invoked[0]); }