### Question:
TableViewBindingAdapter implements GriffonPivotAdapter, org.apache.pivot.wtk.TableViewBindingListener { public void tableDataKeyChanged(org.apache.pivot.wtk.TableView arg0, java.lang.String arg1) { if (tableDataKeyChanged != null) { tableDataKeyChanged.call(arg0, arg1); } }  CallableWithArgs<Void> getTableDataKeyChanged(); CallableWithArgs<Void> getTableDataBindTypeChanged(); CallableWithArgs<Void> getTableDataBindMappingChanged(); CallableWithArgs<Void> getSelectedRowKeyChanged(); CallableWithArgs<Void> getSelectedRowBindTypeChanged(); CallableWithArgs<Void> getSelectedRowBindMappingChanged(); CallableWithArgs<Void> getSelectedRowsKeyChanged(); CallableWithArgs<Void> getSelectedRowsBindTypeChanged(); CallableWithArgs<Void> getSelectedRowsBindMappingChanged(); void setTableDataKeyChanged(CallableWithArgs<Void> tableDataKeyChanged); void setTableDataBindTypeChanged(CallableWithArgs<Void> tableDataBindTypeChanged); void setTableDataBindMappingChanged(CallableWithArgs<Void> tableDataBindMappingChanged); void setSelectedRowKeyChanged(CallableWithArgs<Void> selectedRowKeyChanged); void setSelectedRowBindTypeChanged(CallableWithArgs<Void> selectedRowBindTypeChanged); void setSelectedRowBindMappingChanged(CallableWithArgs<Void> selectedRowBindMappingChanged); void setSelectedRowsKeyChanged(CallableWithArgs<Void> selectedRowsKeyChanged); void setSelectedRowsBindTypeChanged(CallableWithArgs<Void> selectedRowsBindTypeChanged); void setSelectedRowsBindMappingChanged(CallableWithArgs<Void> selectedRowsBindMappingChanged); void tableDataKeyChanged(org.apache.pivot.wtk.TableView arg0, java.lang.String arg1); void tableDataBindTypeChanged(org.apache.pivot.wtk.TableView arg0, org.apache.pivot.wtk.BindType arg1); void tableDataBindMappingChanged(org.apache.pivot.wtk.TableView arg0, org.apache.pivot.wtk.TableView.TableDataBindMapping arg1); void selectedRowKeyChanged(org.apache.pivot.wtk.TableView arg0, java.lang.String arg1); void selectedRowBindTypeChanged(org.apache.pivot.wtk.TableView arg0, org.apache.pivot.wtk.BindType arg1); void selectedRowBindMappingChanged(org.apache.pivot.wtk.TableView arg0, org.apache.pivot.wtk.TableView.SelectedRowBindMapping arg1); void selectedRowsKeyChanged(org.apache.pivot.wtk.TableView arg0, java.lang.String arg1); void selectedRowsBindTypeChanged(org.apache.pivot.wtk.TableView arg0, org.apache.pivot.wtk.BindType arg1); void selectedRowsBindMappingChanged(org.apache.pivot.wtk.TableView arg0, org.apache.pivot.wtk.TableView.SelectedRowBindMapping arg1);  }### Answer:
@Test public void testTableDataKeyChanged() { final boolean[] invoked = new boolean[1]; CallableWithArgs<Void> callable = new CallableWithArgs<Void>() { public Void call(Object... args) { invoked[0] = true; return null; } }; assertNull(adapter.getTableDataKeyChanged()); adapter.tableDataKeyChanged(null, null); assertFalse(invoked[0]); adapter.setTableDataKeyChanged(callable); adapter.tableDataKeyChanged(null, null); assertTrue(invoked[0]); }