### Question:
JsfElFinder implements Iterable<ExpressionInfo> { public Iterator<ExpressionInfo> iterator() { return new ExpressionInfoIterator( JsfElMatcher.forText(sourceText)); } JsfElFinder(final String sourceText); Iterator<ExpressionInfo> iterator();  }### Answer:
@Test public void should_find_all_expressions() throws Exception { String expressions = "action='#{bean.handler}'" + "value = '#{bean.property}'"; Iterator<ExpressionInfo> expressionIterator = new JsfElFinder(expressions).iterator(); assertTrue(expressionIterator.hasNext()); assertEquals(new ExpressionInfo("#{bean.handler}", ExpressionInfo.ElType.METHOD) , expressionIterator.next()); assertTrue(expressionIterator.hasNext()); assertEquals(new ExpressionInfo("#{bean.property}", ExpressionInfo.ElType.VALUE) , expressionIterator.next()); assertFalse(expressionIterator.hasNext()); }