framework/tests/Api/Controller/ApiControllerTestCase.php

52 lines
1.1 KiB
PHP
Raw Normal View History

2018-04-13 13:52:39 +08:00
<?php
/*
* This file is part of Flarum.
*
* (c) Toby Zerner <toby.zerner@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Flarum\Tests\Api\Controller;
use Flarum\Tests\Test\TestCase;
use Flarum\User\User;
use Illuminate\Support\Arr;
2018-04-13 13:52:39 +08:00
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Server\RequestHandlerInterface;
2018-04-13 13:52:39 +08:00
abstract class ApiControllerTestCase extends TestCase
{
/**
* @var RequestHandlerInterface
2018-04-13 13:52:39 +08:00
*/
protected $controller;
/**
* @var null|User
*/
protected $actor = null;
protected function callWith(array $body = [], array $queryParams = []): ResponseInterface
2018-04-13 13:52:39 +08:00
{
if (! Arr::get($body, 'data') && Arr::isAssoc($body)) {
$body = ['data' => ['attributes' => $body]];
}
2018-04-13 13:52:39 +08:00
return $this->call(
$this->controller,
$this->actor,
$queryParams,
$body
2018-04-13 13:52:39 +08:00
);
}
protected function tearDown()
{
$this->actor = null;
parent::tearDown();
}
}