. // }}} namespace App\Tests\Core\DB; use App\Core\DB\DB; use App\Core\DB\UpdateListener; use App\Entity\Actor; use App\Util\GNUsocialTestCase; use DateTime; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Event\PreUpdateEventArgs; class UpdateListenerTest extends GNUsocialTestCase { public function testPreUpdateExists() { static::bootKernel(); $actor = DB::findOneBy(Actor::class, ['nickname' => 'taken_user']); $date = new DateTime('1999-09-23'); $actor->setModified($date); static::assertSame($actor->getModified(), $date); $em = static::$container->get(EntityManagerInterface::class); $change_set = []; $args = new PreUpdateEventArgs($actor, $em, $change_set); $ul = new UpdateListener(); $ul->preUpdate($args); static::assertNotSame($actor->getModified(), $date); } public function testPreUpdateDoesNotExist() { static::bootKernel(); $attention = DB::dql('SELECT att FROM Component\Notification\Entity\Attention att JOIN local_group lg WITH att.target_id = lg.actor_id WHERE lg.nickname = :nickname', ['nickname' => 'taken_public_group'])[0]; static::assertTrue(!method_exists($attention, 'setModified')); $em = static::$container->get(EntityManagerInterface::class); $change_set = []; $args = new PreUpdateEventArgs($attention, $em, $change_set); $ul = new UpdateListener(); static::assertFalse($ul->preUpdate($args)); } }