### Question:
FleaseStage extends LifeCycleThread implements LearnEventListener, FleaseLocalQueueInterface { protected void createTimer(FleaseMessage msg, long timestamp) { msg.validateMessage(); TimerEntry e = new TimerEntry(timestamp, msg); timers.add(e); } FleaseStage(FleaseConfig config, String lockfileDir,
            final FleaseMessageSenderInterface sender, boolean ignoreLockForTesting,
            final FleaseViewChangeListenerInterface viewListener, final FleaseStatusListener leaseListener,
            final MasterEpochHandlerInterface meHandler); ASCIIString getIdentity(); @Deprecated FleaseFuture openCell(ASCIIString cellId, List<InetSocketAddress> acceptors, boolean requestMasterEpoch); FleaseFuture openCell(ASCIIString cellId, List<InetSocketAddress> acceptors, boolean requestMasterEpoch,
            int viewId); void batchOpenCells(ASCIIString[] cellIds, List<InetSocketAddress>[] acceptors, boolean requestMasterEpoch); FleaseFuture closeCell(ASCIIString cellId, boolean returnLease); void setViewId(ASCIIString cellId, int viewId, FleaseListener listener); Map<ASCIIString, FleaseMessage> getLocalState(); void receiveMessage(FleaseMessage msg); FleaseMessage _test_get_local_lease_state(ASCIIString cellId); String _dump_acceptor_state(ASCIIString cellId); void learnedEvent(ASCIIString cellId, ASCIIString leaseHolder, long leaseTimeout_ms, long masterEpochNumber); @Override void run(); void shutdown(); @Override void enqueueMessage(FleaseMessage message); static final String FLEASE_VERSION; static final int TIMER_INTERVAL_IN_MS; static final boolean ENABLE_TIMEOUT_EVENTS; static final boolean DISABLE_RENEW_FOR_TESTING; static final boolean COLLECT_STATISTICS; static final int MAX_BATCH_SIZE; }### Answer:
@Test public void testCreateTimer() throws Exception { FleaseStage fs = new FleaseStage(cfg, "/tmp/xtreemfs-test/", new FleaseMessageSenderInterface() { @Override public void sendMessage(FleaseMessage messages, InetSocketAddress recipient) { } }, true, new FleaseViewChangeListenerInterface() { @Override public void viewIdChangeEvent(ASCIIString cellId, int viewId, boolean onProposal) { } },new FleaseStatusListener() { @Override public void statusChanged(ASCIIString cellId, Flease lease) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void leaseFailed(ASCIIString cellId, FleaseException error) { throw new UnsupportedOperationException("Not supported yet."); } }, null); FleaseMessage msg = new FleaseMessage(FleaseMessage.MsgType.EVENT_RESTART); msg.setCellId(new ASCIIString("testcell")); fs.start(); fs.waitForStartup(); fs.createTimer(msg, TimeSync.getLocalSystemTime()+20); Thread.sleep(100); fs.shutdown(); fs.waitForShutdown(); }