private void verifyDestroyIndexCommandResult(CommandResult result, List<CliFunctionResult> cliFunctionResults, String expectedStatus) { assertThat(result.getStatus()).isEqualTo(Status.OK); if (result.getType().equals(TYPE_TABULAR)) { TabularResultData data = (TabularResultData) result.getResultData(); List<String> members = data.retrieveAllValues("Member"); assertThat(cliFunctionResults.size()).isEqualTo(members.size()); // Verify each member for (int i = 0; i < members.size(); i++) { assertThat(members.get(i)).isEqualTo("member" + i); } // Verify each status List<String> status = data.retrieveAllValues("Status"); for (String statu : status) { assertThat(statu).isEqualTo(expectedStatus); } } else { // Info result. Verify next lines are equal. assertThat(result.nextLine()).isEqualTo(expectedStatus); } }
@Test public void testSearchIndex() throws Exception { final ResultCollector mockResultCollector = mock(ResultCollector.class, "ResultCollector"); final LuceneIndexCommands commands = spy(createIndexCommands(this.mockCache, null)); final List<Set<LuceneSearchResults>> queryResultsList = new ArrayList<>(); HashSet<LuceneSearchResults> queryResults = new HashSet<>(); queryResults.add(createQueryResults("A", "Result1", Float.valueOf("1.3"))); queryResults.add(createQueryResults("B", "Result1", Float.valueOf("1.2"))); queryResults.add(createQueryResults("C", "Result1", Float.valueOf("1.1"))); queryResultsList.add(queryResults); doReturn(mockResultCollector).when(commands).executeSearch(any(LuceneQueryInfo.class)); doReturn(queryResultsList).when(mockResultCollector).getResult(); CommandResult result = (CommandResult) commands.searchIndex("index", "region", "Result1", "field1", -1, false); TabularResultData data = (TabularResultData) result.getResultData(); assertThat(data.retrieveAllValues("key")).isEqualTo(Arrays.asList("A", "B", "C")); assertThat(data.retrieveAllValues("value")) .isEqualTo(Arrays.asList("Result1", "Result1", "Result1")); assertThat(data.retrieveAllValues("score")).isEqualTo(Arrays.asList("1.3", "1.2", "1.1")); }
@Test public void testSearchIndexWithKeysOnly() throws Exception { final ResultCollector mockResultCollector = mock(ResultCollector.class, "ResultCollector"); final LuceneIndexCommands commands = spy(createIndexCommands(this.mockCache, null)); final List<Set<LuceneSearchResults>> queryResultsList = new ArrayList<>(); HashSet<LuceneSearchResults> queryResults = new HashSet<>(); queryResults.add(createQueryResults("A", "Result1", Float.valueOf("1.3"))); queryResults.add(createQueryResults("B", "Result1", Float.valueOf("1.2"))); queryResults.add(createQueryResults("C", "Result1", Float.valueOf("1.1"))); queryResultsList.add(queryResults); doReturn(mockResultCollector).when(commands).executeSearch(any(LuceneQueryInfo.class)); doReturn(queryResultsList).when(mockResultCollector).getResult(); CommandResult result = (CommandResult) commands.searchIndex("index", "region", "Result1", "field1", -1, true); TabularResultData data = (TabularResultData) result.getResultData(); assertThat(data.retrieveAllValues("key")).isEqualTo(Arrays.asList("A", "B", "C")); }
assertThat(data.retrieveAllValues("Index Name")) .isEqualTo(Collections.singletonList("memberFive")); assertThat(data.retrieveAllValues("Region Path")) .isEqualTo(Collections.singletonList("/Employees")); assertThat(data.retrieveAllValues("Indexed Fields")) .isEqualTo(Collections.singletonList("[field1, field2, field3]")); assertThat(data.retrieveAllValues("Field Analyzer")) .isEqualTo(Collections.singletonList("{field1=StandardAnalyzer, field2=KeywordAnalyzer}")); assertThat(data.retrieveAllValues("Status")) .isEqualTo(Collections.singletonList("INITIALIZED")); assertThat(data.retrieveAllValues("Query Executions")) .isEqualTo(Collections.singletonList("1")); assertThat(data.retrieveAllValues("Commits")).isEqualTo(Collections.singletonList("10")); assertThat(data.retrieveAllValues("Updates")).isEqualTo(Collections.singletonList("5")); assertThat(data.retrieveAllValues("Documents")).isEqualTo(Collections.singletonList("1"));
@Test public void canRetrieveAllValues() { data.accumulate("col1", "value1"); data.accumulate("col1", "value2"); data.accumulate("col1", "value3"); assertThat(data.retrieveAllValues("col1")).containsExactly("value1", "value2", "value3"); }
@Test public void testCreateIndex() throws Exception { final ResultCollector mockResultCollector = mock(ResultCollector.class); final LuceneIndexCommands commands = spy(createIndexCommands(this.mockCache, null)); final List<CliFunctionResult> cliFunctionResults = new ArrayList<>(); cliFunctionResults .add(new CliFunctionResult("member1", CliFunctionResult.StatusState.OK, "Index Created")); cliFunctionResults.add(new CliFunctionResult("member2", CliFunctionResult.StatusState.ERROR, "Index creation failed")); cliFunctionResults .add(new CliFunctionResult("member3", CliFunctionResult.StatusState.OK, "Index Created")); doReturn(mockResultCollector).when(commands).executeFunctionOnAllMembers( any(LuceneCreateIndexFunction.class), any(LuceneIndexInfo.class)); doReturn(cliFunctionResults).when(mockResultCollector).getResult(); String indexName = "index"; String regionPath = "regionPath"; String[] searchableFields = {"field1", "field2", "field3"}; String[] fieldAnalyzers = {StandardAnalyzer.class.getCanonicalName(), KeywordAnalyzer.class.getCanonicalName(), StandardAnalyzer.class.getCanonicalName()}; String serializer = PrimitiveSerializer.class.getCanonicalName(); CommandResult result = (CommandResult) commands.createIndex(indexName, regionPath, searchableFields, fieldAnalyzers, serializer); assertThat(result.getStatus()).isEqualTo(Status.OK); TabularResultData data = (TabularResultData) result.getResultData(); assertThat(data.retrieveAllValues("Member")) .isEqualTo(Arrays.asList("member1", "member2", "member3")); assertThat(data.retrieveAllValues("Status")) .isEqualTo(Arrays.asList("Successfully created lucene index", "Failed: Index creation failed", "Successfully created lucene index")); }
assertThat(data.retrieveAllValues("Index Name")) .isEqualTo(Arrays.asList("memberFive", "memberSix", "memberTen")); assertThat(data.retrieveAllValues("Region Path")) .isEqualTo(Arrays.asList("/Employees", "/Employees", "/Employees")); assertThat(data.retrieveAllValues("Indexed Fields")).isEqualTo(Arrays.asList( "[field1, field2, field3]", "[field1, field2, field3]", "[field1, field2, field3]")); assertThat(data.retrieveAllValues("Field Analyzer")) .isEqualTo(Arrays.asList("{field1=StandardAnalyzer, field2=KeywordAnalyzer}", "{field1=StandardAnalyzer, field2=KeywordAnalyzer}", "{field1=StandardAnalyzer, field2=KeywordAnalyzer}")); assertThat(data.retrieveAllValues("Status")) .isEqualTo(Arrays.asList("INITIALIZED", "NOT_INITIALIZED", "INITIALIZED"));
assertThat(data.retrieveAllValues("Index Name")) .isEqualTo(Arrays.asList("memberFive", "memberSix", "memberTen")); assertThat(data.retrieveAllValues("Region Path")) .isEqualTo(Arrays.asList("/Employees", "/Employees", "/Employees")); assertThat(data.retrieveAllValues("Indexed Fields")).isEqualTo(Arrays.asList( "[field1, field2, field3]", "[field1, field2, field3]", "[field1, field2, field3]")); assertThat(data.retrieveAllValues("Field Analyzer")) .isEqualTo(Arrays.asList("{field1=StandardAnalyzer, field2=KeywordAnalyzer}", "{field1=StandardAnalyzer, field2=KeywordAnalyzer}", "{field1=StandardAnalyzer, field2=KeywordAnalyzer}")); assertThat(data.retrieveAllValues("Query Executions")).isEqualTo(Arrays.asList("1", "2", "3")); assertThat(data.retrieveAllValues("Commits")).isEqualTo(Arrays.asList("10", "20", "30")); assertThat(data.retrieveAllValues("Updates")).isEqualTo(Arrays.asList("5", "10", "15")); assertThat(data.retrieveAllValues("Documents")).isEqualTo(Arrays.asList("1", "2", "3")); assertThat(data.retrieveAllValues("Serializer")) .isEqualTo(Arrays.asList(HeterogeneousLuceneSerializer.class.getSimpleName(), HeterogeneousLuceneSerializer.class.getSimpleName(),
(CommandResult) commands.searchIndex("index", "region", "Result1", "field1", -1, true); TabularResultData data = (TabularResultData) result.getResultData(); assertThat(data.retrieveAllValues("key").size()).isEqualTo(queryResults.size());