public function lazyDependencyIsOnlyInjectedIfMethodOnDependencyIsCalledForTheFirstTime()
{
$this->objectManager->forgetInstance(Fixtures\SingletonClassA::class);
$object = $this->objectManager->get(Fixtures\ClassWithLazyDependencies::class);
$this->assertInstanceOf(DependencyProxy::class, $object->lazyA);
$actualObjectB = $object->lazyA->getObjectB();
$this->assertNotInstanceOf(DependencyProxy::class, $object->lazyA);
$objectA = $this->objectManager->get(Fixtures\SingletonClassA::class);
$expectedObjectB = $this->objectManager->get(Fixtures\SingletonClassB::class);
$this->assertSame($objectA, $object->lazyA);
$this->assertSame($expectedObjectB, $actualObjectB);
}