### Question:
IterationState implements Iterator<CursorQuad> { @Override public CursorQuad next() { if (currentQuad == null) { throw new NoSuchElementException(); } CursorQuad result = currentQuad; prepNext(); return result; } IterationState(Stream<CursorQuad> assertions, Stream<CursorQuad> currentState, boolean getAsserted); @Override boolean hasNext(); @Override CursorQuad next();  }### Answer:
@Test public void prefersAssertionOverUnchanged() throws Exception { final IterationState iterationState = new IterationState( newArrayList( CursorQuad.create("subj", "pred", Direction.OUT, ASSERTED, "obj", null, null, "") ).stream(), newArrayList( CursorQuad.create("subj", "pred", Direction.OUT, UNCHANGED, "obj", null, null, "") ).stream(), true ); assertThat(iterationState.next().getChangeType(), is(ASSERTED)); }