ForEachLoop<Integer> loop = ForEachLoop.getInstance(array);
Set<Integer> iterated = asSet();
for (int i : loop) {
@SuppressWarnings("rawtypes")
Status status = loop.getStatus();
assertEquals("current [" + i + "]", i, status.getCurrent());
assertEquals("count [" + i + "]", i, status.getCount());
assertEquals("index [" + i + "]", i - 1, status.getIndex());
assertEquals("isFirst [" + i + "]", i == 1, status.isFirst());
assertEquals("isLast [" + i + "]", i == 15, status.isLast());
assertNull("begin [" + i + "]", status.getBegin());
assertNull("end [" + i + "]", status.getEnd());
assertNull("step [" + i + "]", status.getStep());
iterated.add(i);
}
assertEquals("iterated", asSet(array), iterated);