### Question:
ZemantaEnhancementEngine extends AbstractEnhancementEngine<IOException,RuntimeException> implements EnhancementEngine, ServiceProperties { public void computeEnhancements(ContentItem ci) throws EngineException { Entry<IRI,Blob> contentPart = ContentItemHelper.getBlob(ci, SUPPORTED_MIMETYPES); if(contentPart == null){ throw new IllegalStateException("No ContentPart with a supported Mime Type" + "found for ContentItem "+ci.getUri()+"(supported: '" + SUPPORTED_MIMETYPES+"') -> this indicates that canEnhance was" + "NOT called and indicates a bug in the used EnhancementJobManager!"); } String text; try { text = ContentItemHelper.getText(contentPart.getValue()); } catch (IOException e) { throw new InvalidContentException(this, ci, e); } if (text.trim().length() == 0) { log.warn("ContentPart {} of ContentItem {} does not contain any text to enhance", contentPart.getKey(),ci.getUri()); return; } Graph graph = ci.getMetadata(); IRI ciId = ci.getUri(); Graph results = new SimpleGraph(); ZemantaAPIWrapper zemanta = new ZemantaAPIWrapper(key); try { results.addAll(zemanta.enhance(text)); } catch (IOException e) { throw new EngineException("Unable to get Enhancement from remote Zemanta Service",e); } ci.getLock().writeLock().lock(); try { processRecognition(results, graph, text, ciId); processCategories(results, graph, ciId); } finally { ci.getLock().writeLock().unlock(); } }  int canEnhance(ContentItem ci); void computeEnhancements(ContentItem ci); Map<String, Object> getServiceProperties(); @Property
    static final String API_KEY_PROPERTY; static final String DMOZ_BASE_URL; static final String ZEMANTA_DMOZ_PREFIX; static final Integer defaultOrder; public LiteralFactory literalFactory; }### Answer:
@Test public void tesetBioText() throws EngineException, IOException { ContentItem ci = wrapAsContentItem(BIO_DOMAIN_TEXT); try { zemantaEngine.computeEnhancements(ci); } catch (EngineException e) { RemoteServiceHelper.checkServiceUnavailable(e); return; } JenaSerializerProvider serializer = new JenaSerializerProvider(); serializer.serialize(System.out, ci.getMetadata(), TURTLE); Map<IRI,RDFTerm> expectedValues = new HashMap<IRI,RDFTerm>(); expectedValues.put(Properties.ENHANCER_EXTRACTED_FROM, ci.getUri()); expectedValues.put(Properties.DC_CREATOR, LiteralFactory.getInstance().createTypedLiteral( zemantaEngine.getClass().getName())); int textAnnoNum = validateAllTextAnnotations(ci.getMetadata(), BIO_DOMAIN_TEXT, expectedValues); log.info(textAnnoNum + " TextAnnotations found ..."); expectedValues.put(Properties.ENHANCER_CONFIDENCE, null); int entityAnnoNum = EnhancementStructureHelper.validateAllEntityAnnotations(ci.getMetadata(),expectedValues); log.info(entityAnnoNum + " EntityAnnotations found ..."); int topicAnnoNum = EnhancementStructureHelper.validateAllTopicAnnotations(ci.getMetadata(),expectedValues); log.info(topicAnnoNum + " TopicAnnotations found ..."); }