/** Verify that trying to index content within a temporary path is gracefully ignored. */ @Test public void testIgnoreTempContent() { Event event = createEventWithTempPath(); MessageIndexingHandler handler = new MessageIndexingHandler(); handler.dateParser = this.dateParser; Collection<SolrInputDocument> documents = handler.getDocuments(repositorySession, event); assertTrue("Expected an empty collection of solr input documents.", documents.isEmpty()); }
private SolrInputDocument handleMessageIndexing(Map<String, Object> props) throws Exception { String messagePath = "a:user1/messagePath"; Content content = new Content(messagePath, props); Authorizable sender = mock(Authorizable.class); when(sender.getId()).thenReturn("sender"); when(sender.isGroup()).thenReturn(Boolean.FALSE); when(sender.getProperty(eq("firstName"))).thenReturn("test"); when(sender.getProperty(eq("lastName"))).thenReturn("user"); Authorizable user1 = mock(Authorizable.class); when(user1.getId()).thenReturn("user1"); when(user1.isGroup()).thenReturn(Boolean.FALSE); when(user1.getProperty(eq("firstName"))).thenReturn("user"); when(user1.getProperty(eq("lastName"))).thenReturn("one"); when(authorizableManager.findAuthorizable(anyString())).thenReturn(sender); when(repositorySession.adaptTo(Session.class)).thenReturn(session); when(session.getAuthorizableManager()).thenReturn(authorizableManager); when(session.getContentManager()).thenReturn(contentManager); when(contentManager.get(messagePath)).thenReturn(content); MessageIndexingHandler handler = new MessageIndexingHandler(); handler.dateParser = this.dateParser; Event event = new Event("topic", buildEventProperties(messagePath)); Collection<SolrInputDocument> documents = handler.getDocuments(repositorySession, event); assertNotNull(documents); assertTrue(!documents.isEmpty()); Iterator<SolrInputDocument> docIt = documents.iterator(); SolrInputDocument doc = docIt.next(); // test basic message properties assertEquals("test-messagestore", doc.getField("messagestore").getValue()); assertEquals("test-messagebox", doc.getField("messagebox").getValue()); assertEquals("test-type", doc.getField("type").getValue()); assertEquals("test-category", doc.getField("category").getValue()); assertEquals("test-from", doc.getField("from").getValue()); assertEquals("test-to", doc.getField("to").getValue()); assertEquals("test-read", doc.getField("read").getValue()); assertEquals("test-marker", doc.getField("marker").getValue()); assertEquals("test-sendstate", doc.getField("sendstate").getValue()); assertEquals("test-initialpost", doc.getField("initialpost").getValue()); assertEquals("test-title", doc.getField("title").getValue()); assertEquals("test-content", doc.getField("content").getValue()); // ensure unexpected value is skipped assertNull(doc.getField("notindexed")); // test sender name is set assertEquals("test", doc.getField("firstName").getValue()); assertEquals("user", doc.getField("lastName").getValue()); // an additional doc should have been added for authorizable searching: assertTrue(docIt.hasNext()); SolrInputDocument authDoc = docIt.next(); // test values set for user/group searching assertEquals("test-title", authDoc.getField("title").getValue()); assertEquals("test-content", authDoc.getField("content").getValue()); assertEquals("u", authDoc.getField("type").getValue()); assertEquals(content, authDoc.getField(IndexingHandler._DOC_SOURCE_OBJECT).getValue()); assertEquals("user1", authDoc.getField(IndexingHandler.FIELD_PATH).getValue()); assertEquals(messagePath + "-auth", authDoc.getField(IndexingHandler.FIELD_ID).getValue()); assertEquals("user1", authDoc.getField("returnpath").getValue()); assertTrue(!docIt.hasNext()); return doc; }