public static Reporter start() { return new Reporter(); }
@Override public void accept(Reporter reporter) { reporter.elementMissing(index, expected); }
@Override public void accept(Reporter reporter) { reporter.elementNotEqual(index, expected, found); }
@Override public void accept(Reporter reporter) { reporter.name(name); for (Equality equality : resultList) { equality.accept(reporter); } }
@Override public void accept(Reporter reporter) { reporter.fail(expected, found); }
@Override public void accept(Reporter reporter) { reporter.elementNotExpected(index, found); }
private boolean isEqual(T thatObj) { Equality equality = thisObj.isEqualTo(thatObj); equality.accept(reporter); return reporter.lineList().isEmpty(); }
@Override protected boolean matchesSafely(List<T> thatList) { if (thisList == thatList) { return true; } if (thisList.size() != thatList.size()) { return false; } List<Equality> equalityList = new ArrayList<>(); Iterator<T> thisIter = thisList.iterator(); Iterator<T> thatIter = thatList.iterator(); int index = -1; while (thisIter.hasNext()) { index++; Testable thisObj = thisIter.next(); T thatObj = thatIter.next(); if (thisObj == null && thatObj != null) { equalityList.add(Equality.elementNotExpected(index, thatObj)); break; } equalityList.add(thisObj.isEqualTo(thatObj)); } Reporter reporter = Reporter.start(); for (Equality equality : equalityList) { if (!equality.isEqual()) { equality.accept(reporter); } } return reporter.lineList().isEmpty(); }
@Override public void accept(Reporter reporter) { reporter.name(name); for (Equality equality : resultList) { equality.accept(reporter); } }
@Override public void accept(Reporter reporter) { reporter.fail(expected, found); }
@Override public void accept(Reporter reporter) { reporter.elementNotExpected(index, found); }