(OpenJPAEntityManagerFactory) getEmf();
OpenJPAConfiguration conf =
((OpenJPAEntityManagerFactorySPI) OpenJPAPersistence.cast(emf))
.getConfiguration();
DataCacheScheduler scheduler = new DataCacheScheduler(conf);
scheduler.setInterval(1);
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
String sched = ((cal.get(Calendar.MINUTE) + 1) % 60) + " ";
DummyCache validCache = new DummyCache();
scheduler.scheduleEviction(validCache, sched + valid);
DummyCache invalidCache = new DummyCache();
scheduler.scheduleEviction(invalidCache, sched + invalid);
Thread thread = new Thread(scheduler);
thread.setDaemon(true);
thread.start();
// test that it did not run yet...
Thread.currentThread().sleep(70 * 1000); // 70 seconds
scheduler.stop();
// assertEquals(2, validCache.clearCount);
assertTrue("Wrong invocation count: " + validCache.clearCount,
validCache.clearCount == 1 || validCache.clearCount == 2);
assertEquals(0, invalidCache.clearCount);
}