. // }}} namespace App\Tests\Core\DB; use App\Core\DB\DB; use App\Core\DB\UpdateListener; 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', ['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(); $group_inbox = DB::dql('select gi from group_inbox gi join local_group lg with gi.group_id = lg.group_id where lg.nickname = :nickname', ['nickname' => 'taken_group'])[0]; static::assertTrue(!method_exists($group_inbox, 'setModified')); $em = static::$container->get(EntityManagerInterface::class); $change_set = []; $args = new PreUpdateEventArgs($group_inbox, $em, $change_set); $ul = new UpdateListener(); static::assertFalse($ul->preUpdate($args)); } }