### Question:
ButtonStateAdapter implements GriffonPivotAdapter, org.apache.pivot.wtk.ButtonStateListener { public void stateChanged(org.apache.pivot.wtk.Button arg0, org.apache.pivot.wtk.Button.State arg1) { if (stateChanged != null) { stateChanged.call(arg0, arg1); } }  CallableWithArgs<Void> getStateChanged(); void setStateChanged(CallableWithArgs<Void> stateChanged); void stateChanged(org.apache.pivot.wtk.Button arg0, org.apache.pivot.wtk.Button.State arg1);  }### Answer:
@Test public void testStateChanged() { final boolean[] invoked = new boolean[1]; CallableWithArgs<Void> callable = new CallableWithArgs<Void>() { public Void call(Object... args) { invoked[0] = true; return null; } }; assertNull(adapter.getStateChanged()); adapter.stateChanged(null, null); assertFalse(invoked[0]); adapter.setStateChanged(callable); adapter.stateChanged(null, null); assertTrue(invoked[0]); }