/** * Helper method for testing the entity manager before and after serialization. * * @param em Entity manager used for indexing and searching * @throws Exception */ private static void indexSearchAssert(FullTextEntityManager em) throws Exception { // index a Bretzel em.getTransaction().begin(); Bretzel bretzel = new Bretzel(23, 34); em.persist(bretzel); em.getTransaction().commit(); em.clear(); em.getTransaction().begin(); // execute a non matching query QueryParser parser = new QueryParser( TestConstants.getTargetLuceneVersion(), "title", TestConstants.stopAnalyzer); Query query = parser.parse("saltQty:noword"); assertEquals(0, em.createFullTextQuery(query).getResultList().size()); // execute a matching query query = new TermQuery(new Term("saltQty", "23")); assertEquals("getResultList", 1, em.createFullTextQuery(query).getResultList().size()); assertEquals( "getSingleResult and object retrieval", 23, ((Bretzel) em.createFullTextQuery(query).getSingleResult()).getSaltQty()); assertEquals(1, em.createFullTextQuery(query).getResultSize()); em.getTransaction().commit(); em.clear(); em.getTransaction().begin(); em.remove(em.find(Bretzel.class, bretzel.getId())); em.getTransaction().commit(); }
@Test public void testMessageSending() throws Exception { TShirt shirt = createObjectWithSQL(); List<LuceneWork> queue = createDocumentAndWorkQueue(shirt); registerMessageListener(); sendMessage(queue); // need to sleep to give JMS processing and indexing time Thread.sleep(1000); FullTextSession ftSess = Search.getFullTextSession(openSession()); ftSess.getTransaction().begin(); QueryParser parser = new QueryParser(TestConstants.getTargetLuceneVersion(), "id", TestConstants.stopAnalyzer); Query luceneQuery = parser.parse("logo:jboss"); org.hibernate.Query query = ftSess.createFullTextQuery(luceneQuery); List result = query.list(); assertEquals(1, result.size()); ftSess.delete(result.get(0)); ftSess.getTransaction().commit(); ftSess.close(); }