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

<?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));
}
}