@Test
public void missingDefPrefixWithConditionEdgeIsNoViolation() {

    TestAUGBuilder pattern = buildAUG().withActionNodes("iterator()", "hasNext()", "next()").withDataNode("Iterator")
            .withEdge("iterator()", DEFINITION, "Iterator")
            .withEdge("Iterator", RECEIVER, "hasNext()")
            .withEdge("Iterator", RECEIVER, "next()")
            .withEdge("iterator()", REPETITION, "next()")
            .withEdge("hasNext()", REPETITION, "next()");
    TestAUGBuilder target = buildAUG().withActionNodes("hasNext()", "next()").withDataNode("Iterator")
            .withEdge("Iterator", RECEIVER, "hasNext()")
            .withEdge("Iterator", RECEIVER, "next()")
            .withEdge("hasNext()", REPETITION, "next()");
    TestOverlapBuilder overlap = buildOverlap(pattern, target).withNodes("hasNext()", "next()", "Iterator")
            .withEdge("Iterator", RECEIVER, "hasNext()")
            .withEdge("Iterator", RECEIVER, "next()")
            .withEdge("hasNext()", CONDITION, "next()");
    Optional<Boolean> decision = new MissingDefPrefixNoViolationPredicate().apply(overlap.build());
    assertThat(decision, is(Optional.of(false)));
}