mageekguy\atoum\asserters\variable::isReferenceTo PHP Method

isReferenceTo() public method

public isReferenceTo ( &$reference, $failMessage = null )
    public function isReferenceTo(&$reference, $failMessage = null)
    {
        if ($this->valueIsSet()->isSetByReference() === false) {
            throw new exceptions\logic('Value is not set by reference');
        }
        if (is_object($this->value) === true && is_object($reference) === true) {
            if ($this->value === $reference) {
                $this->pass();
            } else {
                $this->fail($failMessage ?: $this->_('%s is not a reference to %s', $this, $this->getTypeOf($reference)));
            }
        } else {
            $tmp = $reference;
            $reference = uniqid(mt_rand());
            $isReference = $this->value === $reference;
            $reference = $tmp;
            if ($isReference === true) {
                $this->pass();
            } else {
                $this->fail($failMessage ?: $this->_('%s is not a reference to %s', $this, $this->getTypeOf($reference)));
            }
        }
        return $this;
    }

Usage Example

Beispiel #1
0
 public function testIsReferenceTo()
 {
     $this->if($asserter = new sut($generator = new asserter\generator()))->and($value = uniqid())->then->boolean($asserter->wasSet())->isFalse()->exception(function () use($asserter, $value) {
         $asserter->isReferenceTo($value);
     })->isInstanceOf('logicException')->hasMessage('Value is undefined')->if($asserter->setWith($value))->then->boolean($asserter->isSetByReference())->isFalse()->exception(function () use($asserter, $value) {
         $asserter->isReferenceTo($value);
     })->isInstanceOf('logicException')->hasMessage('Value is not set by reference')->if($asserter->setByReferenceWith($value))->and($reference =& $value)->then->boolean($asserter->wasSet())->isTrue()->boolean($asserter->isSetByReference())->isTrue()->object($asserter->isReferenceTo($reference))->isIdenticalTo($asserter)->if($notReference = uniqid())->then->exception(function () use($asserter, $notReference) {
         $asserter->isReferenceTo($notReference);
     })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('%s is not a reference to %s'), $asserter, $asserter->getTypeOf($notReference)))->if($value = new \exception())->and($reference = $value)->and($asserter->setByReferenceWith($value))->then->boolean($asserter->wasSet())->isTrue()->boolean($asserter->isSetByReference())->isTrue()->object($asserter->isReferenceTo($reference))->isIdenticalTo($asserter)->if($notReference = new \exception())->then->exception(function () use($asserter, $notReference) {
         $asserter->isReferenceTo($notReference);
     })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('%s is not a reference to %s'), $asserter, $asserter->getTypeOf($notReference)));
 }