/** * Tests the {@link TaskMonitor#monitor(Task)} and * {@link TaskMonitor#finish(Task)} implementation to fire corresponding * events during task monitoring when an application updates property * {@code cancelled}. */ public void testCancelable() throws Exception { assert this.getTaskMonitor() != null; final Task task = new Task(); final TestTaskListener listener = new TestTaskListener( task ); this.getTaskEventSource().addTaskListener( listener ); task.setCancelable( true ); task.setDescription( new TestMessage() ); this.getTaskMonitor().monitor( task ); for ( int i = 10; i > 0; i-- ) { if ( i == 10 ) { task.setCancelled( true ); } Thread.currentThread().sleep( 1000 ); } this.getTaskMonitor().finish( task ); Assert.assertTrue( listener.getStartTime() > 0 ); Assert.assertTrue( listener.getEndTime() > 0 ); Assert.assertTrue( listener.getChangedState() ); }