Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php declare(strict_types=1); namespace Doctrine\Tests\ORM\Cache\Persister\Collection; ..
Decoded Output download
<?php
declare(strict_types=1);
namespace Doctrine\Tests\ORM\Cache\Persister\Collection;
use Doctrine\ORM\Cache\CollectionCacheKey;
use Doctrine\ORM\Cache\ConcurrentRegion;
use Doctrine\ORM\Cache\Lock;
use Doctrine\ORM\Cache\Persister\Collection\AbstractCollectionPersister;
use Doctrine\ORM\Cache\Persister\Collection\ReadWriteCachedCollectionPersister;
use Doctrine\ORM\Cache\Region;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Mapping\AssociationMapping;
use Doctrine\ORM\Persisters\Collection\CollectionPersister;
use Doctrine\Tests\Models\Cache\State;
use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\MockObject\MockObject;
use ReflectionProperty;
#[Group('DDC-2183')]
class ReadWriteCachedCollectionPersisterTest extends CollectionPersisterTestCase
{
protected function createPersister(
EntityManagerInterface $em,
CollectionPersister $persister,
Region $region,
AssociationMapping $mapping,
): AbstractCollectionPersister {
return new ReadWriteCachedCollectionPersister($persister, $region, $em, $mapping);
}
protected function createRegion(): ConcurrentRegion&MockObject
{
return $this->createMock(ConcurrentRegion::class);
}
public function testDeleteShouldLockItem(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->delete($collection);
}
public function testUpdateShouldLockItem(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->update($collection);
}
public function testUpdateTransactionRollBackShouldEvictItem(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->update($collection);
$persister->afterTransactionRolledBack();
}
public function testDeleteTransactionRollBackShouldEvictItem(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->delete($collection);
$persister->afterTransactionRolledBack();
}
public function testTransactionRollBackDeleteShouldClearQueue(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->delete($collection);
self::assertCount(1, $property->getValue($persister));
$persister->afterTransactionRolledBack();
self::assertCount(0, $property->getValue($persister));
}
public function testTransactionRollBackUpdateShouldClearQueue(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->update($collection);
self::assertCount(1, $property->getValue($persister));
$persister->afterTransactionRolledBack();
self::assertCount(0, $property->getValue($persister));
}
public function testTransactionRollCommitDeleteShouldClearQueue(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->delete($collection);
self::assertCount(1, $property->getValue($persister));
$persister->afterTransactionComplete();
self::assertCount(0, $property->getValue($persister));
}
public function testTransactionRollCommitUpdateShouldClearQueue(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->update($collection);
self::assertCount(1, $property->getValue($persister));
$persister->afterTransactionComplete();
self::assertCount(0, $property->getValue($persister));
}
public function testDeleteLockFailureShouldIgnoreQueue(): void
{
$entity = new State('Foo');
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn(null);
$this->collectionPersister->expects(self::once())
->method('delete')
->with(self::identicalTo($collection));
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->delete($collection);
self::assertCount(0, $property->getValue($persister));
}
public function testUpdateLockFailureShouldIgnoreQueue(): void
{
$entity = new State('Foo');
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn(null);
$this->collectionPersister->expects(self::once())
->method('update')
->with(self::identicalTo($collection));
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->update($collection);
self::assertCount(0, $property->getValue($persister));
}
}
?>
Did this file decode correctly?
Original Code
<?php
declare(strict_types=1);
namespace Doctrine\Tests\ORM\Cache\Persister\Collection;
use Doctrine\ORM\Cache\CollectionCacheKey;
use Doctrine\ORM\Cache\ConcurrentRegion;
use Doctrine\ORM\Cache\Lock;
use Doctrine\ORM\Cache\Persister\Collection\AbstractCollectionPersister;
use Doctrine\ORM\Cache\Persister\Collection\ReadWriteCachedCollectionPersister;
use Doctrine\ORM\Cache\Region;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Mapping\AssociationMapping;
use Doctrine\ORM\Persisters\Collection\CollectionPersister;
use Doctrine\Tests\Models\Cache\State;
use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\MockObject\MockObject;
use ReflectionProperty;
#[Group('DDC-2183')]
class ReadWriteCachedCollectionPersisterTest extends CollectionPersisterTestCase
{
protected function createPersister(
EntityManagerInterface $em,
CollectionPersister $persister,
Region $region,
AssociationMapping $mapping,
): AbstractCollectionPersister {
return new ReadWriteCachedCollectionPersister($persister, $region, $em, $mapping);
}
protected function createRegion(): ConcurrentRegion&MockObject
{
return $this->createMock(ConcurrentRegion::class);
}
public function testDeleteShouldLockItem(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->delete($collection);
}
public function testUpdateShouldLockItem(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->update($collection);
}
public function testUpdateTransactionRollBackShouldEvictItem(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->update($collection);
$persister->afterTransactionRolledBack();
}
public function testDeleteTransactionRollBackShouldEvictItem(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->delete($collection);
$persister->afterTransactionRolledBack();
}
public function testTransactionRollBackDeleteShouldClearQueue(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->delete($collection);
self::assertCount(1, $property->getValue($persister));
$persister->afterTransactionRolledBack();
self::assertCount(0, $property->getValue($persister));
}
public function testTransactionRollBackUpdateShouldClearQueue(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->update($collection);
self::assertCount(1, $property->getValue($persister));
$persister->afterTransactionRolledBack();
self::assertCount(0, $property->getValue($persister));
}
public function testTransactionRollCommitDeleteShouldClearQueue(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->delete($collection);
self::assertCount(1, $property->getValue($persister));
$persister->afterTransactionComplete();
self::assertCount(0, $property->getValue($persister));
}
public function testTransactionRollCommitUpdateShouldClearQueue(): void
{
$entity = new State('Foo');
$lock = Lock::createLockRead();
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn($lock);
$this->region->expects(self::once())
->method('evict')
->with(self::equalTo($key))
->willReturn(true);
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->update($collection);
self::assertCount(1, $property->getValue($persister));
$persister->afterTransactionComplete();
self::assertCount(0, $property->getValue($persister));
}
public function testDeleteLockFailureShouldIgnoreQueue(): void
{
$entity = new State('Foo');
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn(null);
$this->collectionPersister->expects(self::once())
->method('delete')
->with(self::identicalTo($collection));
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->delete($collection);
self::assertCount(0, $property->getValue($persister));
}
public function testUpdateLockFailureShouldIgnoreQueue(): void
{
$entity = new State('Foo');
$persister = $this->createPersisterDefault();
$collection = $this->createCollection($entity);
$key = new CollectionCacheKey(State::class, 'cities', ['id' => 1]);
$property = new ReflectionProperty(ReadWriteCachedCollectionPersister::class, 'queuedCache');
$this->region->expects(self::once())
->method('lock')
->with(self::equalTo($key))
->willReturn(null);
$this->collectionPersister->expects(self::once())
->method('update')
->with(self::identicalTo($collection));
$this->em->getUnitOfWork()->registerManaged($entity, ['id' => 1], ['id' => 1, 'name' => 'Foo']);
$persister->update($collection);
self::assertCount(0, $property->getValue($persister));
}
}
Function Calls
None |
Stats
MD5 | b39dc894dc5e5da5af2f8081edfe9dfd |
Eval Count | 0 |
Decode Time | 102 ms |