### Question:
AbbyyProcess extends AbstractProcess implements OcrProcess,Serializable,Cloneable,
		Runnable { public void initialize(Properties initProps) { props = initProps; hotfolderManager = createHotfolderManager(); abbyyTicket = createAbbyyTicket(this); processId = java.util.UUID.randomUUID().toString(); windowsPathForServer = props.getProperty("serverOutputLocation"); try { URI serverUri = new URI(props.getProperty("serverUrl")); inputDavUri = new URI(serverUri + props.getProperty("inputFolder") + "/"); outputDavUri = new URI(serverUri + props.getProperty("outputFolder") + "/"); errorDavUri = new URI(serverUri + props.getProperty("errorFolder") + "/"); resultXmlDavUri = new URI(serverUri + props.getProperty("resultXmlFolder") + "/"); abbyyTicket.setRemoteInputFolder(inputDavUri); abbyyTicket.setRemoteErrorFolder(errorDavUri); } catch (URISyntaxException e) { logger.error("Can't setup server uris (" + getName() + ")"); throw new IllegalArgumentException(e); } }  void initialize(Properties initProps); String getWindowsPathForServer(); @Override void run(); @Override void addImage(URI localUri); boolean hasFailed(); boolean hasEnoughSpaceForExecution(); @Override void addOutput(OcrFormat format); void setMerger(ProcessMergingObserver newMerger); String getProcessId(); void setProcessId(String processId); boolean hasFinished(); void setFinished(); List<String> getRemoteImageNames(); AbbyyProcess createSubProcess(); Long getStartedAt(); void setStartedAt(long time); @Override boolean equals(Object obj); @Override int hashCode();  }### Answer:
@Test public void shouldInitializeTicket() throws URISyntaxException { processSut.initialize(validProps()); verify(ticketMock).setRemoteInputFolder(new URI("http: }
@Test(expected=IllegalArgumentException.class) public void shouldNotAcceptIllegalUri() throws URISyntaxException { Properties props = validProps(); props.setProperty("serverUrl", ">not-a-url"); processSut.initialize(props); }