private static class C {}
private static class D {}
public void testTwoCycles() throws Exception {
testCycle()
.addEdge(new Dependency(bar(), Key.get(A.class), SOURCE))
.addEdge(new Dependency(Key.get(A.class), Key.get(B.class), SOURCE))
.addEdge(new Dependency(Key.get(B.class), Key.get(C.class), SOURCE))
.addEdge(new Dependency(Key.get(B.class), Key.get(D.class), SOURCE))
.addEdge(new Dependency(Key.get(C.class), Key.get(A.class), SOURCE))
.keysBoundAt(child, Key.get(D.class))
.implicitlyBoundAt(child, foo(), bar(), baz(),
Key.get(A.class), Key.get(B.class), Key.get(C.class))
.test();
}