### Question:
SheetStateAdapter implements GriffonPivotAdapter, org.apache.pivot.wtk.SheetStateListener { public void sheetClosed(org.apache.pivot.wtk.Sheet arg0) { if (sheetClosed != null) { sheetClosed.call(arg0); } }  CallableWithArgs<Vote> getPreviewSheetClose(); CallableWithArgs<Void> getSheetCloseVetoed(); CallableWithArgs<Void> getSheetClosed(); void setPreviewSheetClose(CallableWithArgs<Vote> previewSheetClose); void setSheetCloseVetoed(CallableWithArgs<Void> sheetCloseVetoed); void setSheetClosed(CallableWithArgs<Void> sheetClosed); org.apache.pivot.util.Vote previewSheetClose(org.apache.pivot.wtk.Sheet arg0, boolean arg1); void sheetCloseVetoed(org.apache.pivot.wtk.Sheet arg0, org.apache.pivot.util.Vote arg1); void sheetClosed(org.apache.pivot.wtk.Sheet arg0);  }### Answer:
@Test public void testSheetClosed() { final boolean[] invoked = new boolean[1]; CallableWithArgs<Void> callable = new CallableWithArgs<Void>() { public Void call(Object... args) { invoked[0] = true; return null; } }; assertNull(adapter.getSheetClosed()); adapter.sheetClosed(null); assertFalse(invoked[0]); adapter.setSheetClosed(callable); adapter.sheetClosed(null); assertTrue(invoked[0]); }