You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.1 KiB
58 lines
1.1 KiB
<?php
|
|
|
|
/**
|
|
* Slim Framework (https://slimframework.com)
|
|
*
|
|
* @license https://github.com/slimphp/Slim-Psr7/blob/master/LICENSE.md (MIT License)
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Slim\Tests\Psr7\Integration;
|
|
|
|
use Psr\Http\Message\UriInterface;
|
|
use Slim\Psr7\Factory\UriFactory;
|
|
use Slim\Psr7\Stream;
|
|
use Slim\Psr7\UploadedFile;
|
|
|
|
use function fopen;
|
|
use function fwrite;
|
|
use function is_resource;
|
|
|
|
trait BaseTestFactories
|
|
{
|
|
/**
|
|
* @param string $uri
|
|
* @return UriInterface
|
|
*/
|
|
protected function buildUri($uri): UriInterface
|
|
{
|
|
return (new UriFactory())->createUri($uri);
|
|
}
|
|
|
|
/**
|
|
* @param $data
|
|
* @return Stream
|
|
*/
|
|
protected function buildStream($data): Stream
|
|
{
|
|
if (!is_resource($data)) {
|
|
$h = fopen('php://temp', 'w+');
|
|
fwrite($h, $data);
|
|
|
|
$data = $h;
|
|
}
|
|
|
|
return new Stream($data);
|
|
}
|
|
|
|
/**
|
|
* @param $data
|
|
* @return UploadedFile
|
|
*/
|
|
protected function buildUploadableFile($data): UploadedFile
|
|
{
|
|
return new UploadedFile($this->buildStream($data));
|
|
}
|
|
}
|