Illuminate\Routing\AcParametersTest::testExtractResourceAndNestedResourceIdsFromRequest PHP Method

testExtractResourceAndNestedResourceIdsFromRequest() public method

    public function testExtractResourceAndNestedResourceIdsFromRequest()
    {
        $parameters = $this->parameters;
        Route::get('users/{id}', ['as' => 'users.show', 'uses' => 'UsersController@show']);
        // user show action
        Route::get('users/{user_id}/posts/{id}', ['as' => 'users.posts.show', 'uses' => 'PostsController@show']);
        // post show action
        $controllerName = "CommentsController";
        // comment show action
        Route::get('users/{user_id}/posts/{post_id}/comments/{id}', ['as' => 'users.posts.comments.show', 'uses' => 'CommentsController@show']);
        $controller = $this->mockController($controllerName);
        $this->call('GET', '/users/7/posts/3/comments/8');
        // show action of comment resource
        $this->assertArrayHasKey('user_id', $this->getProperty($parameters, 'params'));
        $this->assertEquals($this->getProperty($parameters, 'params')['user_id'], '7');
        $this->assertArrayHasKey('user_id', $this->getProperty($controller, 'params'));
        $this->assertEquals($this->getProperty($controller, 'params')['user_id'], '7');
        $this->assertArrayHasKey('post_id', $this->getProperty($parameters, 'params'));
        $this->assertEquals($this->getProperty($parameters, 'params')['post_id'], '3');
        $this->assertArrayHasKey('post_id', $this->getProperty($controller, 'params'));
        $this->assertEquals($this->getProperty($controller, 'params')['post_id'], '3');
        $this->assertArrayHasKey('id', $this->getProperty($parameters, 'params'));
        $this->assertEquals($this->getProperty($parameters, 'params')['id'], '8');
        $this->assertArrayHasKey('id', $this->getProperty($controller, 'params'));
        $this->assertEquals($this->getProperty($controller, 'params')['id'], '8');
    }