/** QTZ-205 */
  @Test
  public void testTriggerFinalized() throws Exception {
    Qtz205TriggerListener triggerListener = new Qtz205TriggerListener();
    Qtz205ScheListener schedulerListener = new Qtz205ScheListener();
    Properties props = new Properties();
    props.setProperty("org.quartz.scheduler.idleWaitTime", "1500");
    props.setProperty("org.quartz.threadPool.threadCount", "2");
    Scheduler scheduler = new StdSchedulerFactory(props).getScheduler();
    scheduler.getListenerManager().addSchedulerListener(schedulerListener);
    scheduler.getListenerManager().addTriggerListener(triggerListener);
    scheduler.start();
    scheduler.standby();

    JobDetail job = newJob(Qtz205Job.class).withIdentity("test").build();
    Trigger trigger =
        newTrigger()
            .withIdentity("test")
            .withSchedule(simpleSchedule().withIntervalInMilliseconds(250).withRepeatCount(2))
            .build();
    scheduler.scheduleJob(job, trigger);
    scheduler.start();
    Thread.sleep(5000);

    scheduler.shutdown(true);

    Assert.assertEquals(2, Qtz205Job.jobExecutionCount);
    Assert.assertEquals(3, triggerListener.getFireCount());
    Assert.assertEquals(1, schedulerListener.getTriggerFinalizedCount());
  }