### Question:
ProcessingPredicateVisitor implements PredicateVisitor { public Predicate getProcessedPredicate() { return lastVisited; } ProcessingPredicateVisitor(QueryImpl query); @Override void acceptComparisonPredicate(ComparisonPredicate predicate); @Override void acceptArrayPredicate(ArrayPredicate arrayPredicate); @Override void acceptUnaryPredicate(UnaryPredicate predicate); @Override void acceptAlwaysPredicate(AlwaysPredicate predicate); @Override void acceptCategoryPredicate(CategoryPredicate predicate); Predicate getProcessedPredicate(); Set<String> getSubResourceCategories(); Set<String> getSubResourceProperties();  }### Answer:
@Test public void testGetProcessedPredicate() throws Exception { ResourceDefinition resourceDefinition = new StackResourceDefinition(); Map<Resource.Type, String> mapIds = new HashMap<>(); mapIds.put(Resource.Type.Stack, "HDP"); QueryImpl instance = new QueryImplTest.TestQuery(mapIds, resourceDefinition); Predicate predicate = new PredicateBuilder().property("Stacks/stack_name").equals("HDP").and(). property("versions/stackServices/StackServices/service_name").equals("HBASE").and(). property("versions/operatingSystems/OperatingSystems/os_type").equals("centos5").toPredicate(); ProcessingPredicateVisitor visitor = new ProcessingPredicateVisitor(instance); PredicateHelper.visit(predicate, visitor); Predicate processedPredicate = visitor.getProcessedPredicate(); Predicate expectedPredicate = new PredicateBuilder().property("Stacks/stack_name").equals("HDP").toPredicate(); Assert.assertEquals(expectedPredicate, processedPredicate); }