### Question:
AAAFilterChain implements FilterChain { @Override public void doFilter(final ServletRequest request, final ServletResponse response) throws IOException, ServletException { if (injectedFilterChainIterator != null && injectedFilterChainIterator.hasNext()) { injectedFilterChainIterator.next().doFilter(request, response, this); } else if (existingFilterChain != null) { existingFilterChain.doFilter(request, response); } } private  AAAFilterChain(); static AAAFilterChain createAAAFilterChain(); @Override void doFilter(final ServletRequest request, final ServletResponse response); void doFilter(final ServletRequest request, final ServletResponse response,
            final FilterChain newExistingFilterChain, final List<Filter> injectedFilterChain);  }### Answer:
@Test public void testDoFilter() throws IOException, ServletException { testChain(1); testChain(2); testChain(100); testChain(101); }