SyncProcessManagerImpl implements SyncProcessManager { @Override public void start() throws SyncProcessException { this.currentState.start(); } @Autowired  SyncProcessManagerImpl(
        SyncConfigurationManager syncConfigurationManager,
        ContentStoreManagerFactory contentStoreManagerFactory,
        SyncOptimizeManager syncOptimizeManager); @PostConstruct void init(); @Override SyncProcessError getError(); @Override void clearError(); @Override void start(); @Override void resume(); @Override void stop(); @Override void pause(); @Override void restart(); @Override SyncProcessState getProcessState(); @Override SyncProcessStats getProcessStats(); @Override void addSyncStateChangeListener(SyncStateChangeListener syncStateChangeListener); @Override void removeSyncStateChangeListener(SyncStateChangeListener syncStateChangeListener); @Override List<MonitoredFile> getMonitoredFiles(); @Override List<SyncSummary> getFailures(); @Override List<SyncSummary> getRecentlyCompleted(); @Override List<File> getQueuedFiles(); @Override void clearFailures(); @PreDestroy void shutdown();  }
@Test public void testStart() throws SyncProcessException, ContentStoreException { setupStart(); replay(); createTestSubject(); TestSyncStateListener listener = new TestSyncStateListener(SyncProcessState.RUNNING); syncProcessManagerImpl.addSyncStateChangeListener(listener); syncProcessManagerImpl.start(); assertTrue(listener.success()); }