Ejemplo n.º 1
0
 public function testCloningCallsClonerWithClonedObject()
 {
     $lazyObject = $this->lazyObject;
     $test = $this;
     $cb = $this->getMock('stdClass', array('cb'));
     $cb->expects($this->once())->method('cb')->will($this->returnCallback(function (LazyLoadableObject $proxy) use($lazyObject, $test) {
         /* @var $proxy LazyLoadableObject|Proxy */
         $test->assertNotSame($proxy, $lazyObject);
         $proxy->__setInitializer(null);
         $proxy->publicAssociation = 'clonedAssociation';
     }));
     $this->lazyObject->__setCloner($this->getClosure(array($cb, 'cb')));
     $cloned = clone $this->lazyObject;
     $this->assertSame('clonedAssociation', $cloned->publicAssociation);
     $this->assertNotSame($cloned, $lazyObject, 'a clone of the lazy object is retrieved');
 }