/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Routing/RouteBindingTest.php
72 строки
2 KB
Graham Bradley
[11.x] Support soft deleted models when using explicit route model binding (#51651)
31 май 2024, 22:13
Не верифицирован
31 май 2024, 22:13
4ebbabe
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Routing; use Illuminate\Container\Container; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Routing\Route; use Illuminate\Routing\RouteBinding; use PHPUnit\Framework\TestCase; class RouteBindingTest extends TestCase { public function test_it_can_resolve_the_explicit_model_for_the_given_route() { $container = Container::getInstance(); $route = new Route('GET', '/users/{user}', function () { }); $callback = RouteBinding::forModel($container, ExplicitRouteBindingUser::class); $this->assertInstanceOf(ExplicitRouteBindingUser::class, $callback(1, $route)); } public function test_it_cannot_resolve_the_explicit_soft_deleted_model_for_the_given_route() { $container = Container::getInstance(); $route = new Route('GET', '/users/{user}', function () { }); $callback = RouteBinding::forModel($container, ExplicitRouteBindingSoftDeletableUser::class); $this->expectException(ModelNotFoundException::class); $callback(1, $route); } public function test_it_can_resolve_the_explicit_soft_deleted_model_for_the_given_route_with_trashed() { $container = Container::getInstance(); $route = (new Route('GET', '/users/{user}', function () { }))->withTrashed(); $callback = RouteBinding::forModel($container, ExplicitRouteBindingSoftDeletableUser::class); $this->assertInstanceOf(ExplicitRouteBindingSoftDeletableUser::class, $callback(1, $route)); } } class ExplicitRouteBindingUser extends Model { public function resolveRouteBinding($value, $field = null) { return new self(); } } class ExplicitRouteBindingSoftDeletableUser extends Model { use SoftDeletes; public function resolveRouteBinding($value, $field = null) { return null; } public function resolveSoftDeletableRouteBinding($value, $field = null) { return new self(); } }