/
githubmirror
/
symfony
Обзор
Документация
Войти
/
githubmirror
/
symfony
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
8.2
src/Symfony/Component/HttpKernel/Tests/Controller/ArgumentResolver/SessionValueResolverTest.php
70 строк
2 KB
Nicolas Grekas
[HttpKernel] Preserve named-attribute override on Request/Session value resolvers
15 май 2026, 11:54
15 май 2026, 11:54
e9f4af2
Код
Авторство
О чём код?
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpKernel\Tests\Controller\ArgumentResolver; use PHPUnit\Framework\TestCase; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpFoundation\Session\SessionInterface; use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage; use Symfony\Component\HttpKernel\Controller\ArgumentResolver\SessionValueResolver; use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata; class SessionValueResolverTest extends TestCase { public function testResolveReturnsSession() { $resolver = new SessionValueResolver(); $session = new Session(new MockArraySessionStorage()); $request = Request::create('/'); $request->setSession($session); $metadata = new ArgumentMetadata('session', SessionInterface::class, false, false, null); $this->assertSame([$session], $resolver->resolve($request, $metadata)); } public function testResolveSkipsWhenNoSession() { $resolver = new SessionValueResolver(); $request = Request::create('/'); $metadata = new ArgumentMetadata('session', SessionInterface::class, false, false, null); $this->assertSame([], $resolver->resolve($request, $metadata)); } public function testResolveSkipsUnrelatedTypes() { $resolver = new SessionValueResolver(); $session = new Session(new MockArraySessionStorage()); $request = Request::create('/'); $request->setSession($session); $metadata = new ArgumentMetadata('foo', \stdClass::class, false, false, null); $this->assertSame([], $resolver->resolve($request, $metadata)); } public function testResolveDefersWhenMatchingNamedAttributeExists() { $resolver = new SessionValueResolver(); $session = new Session(new MockArraySessionStorage()); $request = Request::create('/'); $request->setSession($session); $request->attributes->set('session', new Session(new MockArraySessionStorage())); $metadata = new ArgumentMetadata('session', SessionInterface::class, false, false, null); $this->assertSame([], $resolver->resolve($request, $metadata)); } }