private void assertURLDecodedTo(final Tokenizer t, final String uri, final String[] expectedStems, final String[] expectedTypes, final int[] expectedPosIncr)
throws IOException {
assertTrue("has CharTermAttribute", t.hasAttribute(CharTermAttribute.class));
final CharTermAttribute termAtt = t.getAttribute(CharTermAttribute.class);
assertTrue("has TypeAttribute", t.hasAttribute(TypeAttribute.class));
final TypeAttribute typeAtt = t.getAttribute(TypeAttribute.class);
assertTrue("has PositionIncrementAttribute", t.hasAttribute(PositionIncrementAttribute.class));
final PositionIncrementAttribute posIncrAtt = t.getAttribute(PositionIncrementAttribute.class);
t.setReader(new StringReader(uri));
t.reset();
final TokenFilter filter = new MailtoFilter(t);
for (int i = 0; i < expectedStems.length; i++) {
assertTrue("token " + i + " exists", filter.incrementToken());
assertEquals(expectedStems[i], termAtt.toString());
if (expectedTypes == null)
assertEquals(uritype, typeAtt.type());
else
assertEquals(expectedTypes[i], typeAtt.type());
if (expectedPosIncr != null)
assertEquals(expectedPosIncr[i], posIncrAtt.getPositionIncrement());
}
filter.end();
filter.close();
}