// Foo -> Provider<Bar> -> Bar -> {Foo, Baz}, Baz is bound at childL
// This test makes sure that we at least ensure that Bar doesn't move higher than
// *any* of it's dependencies, even after detecting a cycle.
StandardTree tree = createExampleTree();
Binding fooBinding = expectCreateBinding(foo(), required(foo(), providerBar()));
Binding providerBarBinding = expectCreateBinding(providerBar(),
requiredLazy(providerBar(), bar()));
Binding barBinding = expectCreateBinding(bar(), required(bar(), foo()), required(bar(), baz()));
bind(baz(), tree.childL);
tree.childL.addBinding(foo(), fooBinding);
tree.childL.addBinding(providerBar(), providerBarBinding);
tree.childL.addBinding(bar(), barBinding);