### Question:
DefaultSynchComponentFactory implements SynchComponentFactory { @Override public AbstractSynchronizingDiffProcessor instanceDiffProcessor( final Synchronization synchronization, final TransferControlBlock transferControlBlock) { log.info("instanceDiffProcessor()"); if (synchronization == null) { throw new IllegalArgumentException("null synchronization"); } if (transferControlBlock == null) { throw new IllegalArgumentException("null transferControlBlock"); } switch (synchronization.getSynchronizationMode()) { case ONE_WAY_LOCAL_TO_IRODS: return new LocalToIRODSDiffProcessor(getConveyorService(), transferControlBlock); case ONE_WAY_IRODS_TO_LOCAL: throw new UnsupportedOperationException("unsupported synch type"); case BI_DIRECTIONAL: throw new UnsupportedOperationException("unsupported synch type"); default: throw new UnsupportedOperationException("unsupported synch type"); } } DefaultSynchComponentFactory(); ConveyorService getConveyorService(); void setConveyorService(final ConveyorService conveyorService); @Override AbstractSynchronizingDiffCreator instanceDiffCreator(
			final Synchronization synchronization,
			final TransferControlBlock transferControlBlock); @Override AbstractSynchronizingDiffProcessor instanceDiffProcessor(
			final Synchronization synchronization,
			final TransferControlBlock transferControlBlock);  }### Answer:
@Test public void testGetDiffProcessorForIrodsToLocal() throws Exception { Synchronization synch = new Synchronization(); synch.setSynchronizationMode(SynchronizationType.ONE_WAY_LOCAL_TO_IRODS); TransferControlBlock tcb = irodsFileSystem .getIRODSAccessObjectFactory() .buildDefaultTransferControlBlockBasedOnJargonProperties(); LocalToIRODSDiffProcessor processor = (LocalToIRODSDiffProcessor) conveyorService .getSynchComponentFactory().instanceDiffProcessor(synch, tcb); Assert.assertNotNull("no processor returned", processor); }