PHP code example of tomkyle / mock-psr

1. Go to this page and download the library: Download tomkyle/mock-psr library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

tomkyle / mock-psr example snippets



use tomkyle\MockPsr\MockPsr6CacheTrait;
use tomkyle\MockPsr\MockPsr7MessagesTrait;
use tomkyle\MockPsr\MockPsr11ContainerTrait;
use tomkyle\MockPsr\MockPsr15RequestHandlerTrait;
use tomkyle\MockPsr\MockPsr17FactoriesTrait;
use tomkyle\MockPsr\MockPsr18ClientTrait;  

# Bonus
use tomkyle\MockPsr\MockPdoTrait;

class YourTest extends \PHPUnit\Framework\TestCase
{
    use MockPsr7MessagesTrait;
    use MockPsr11ContainerTrait;
    
    public function testSomething()
    {
        $response = $this->mockResponse(200, 'OK');
        $container = $this->mockContainer(['service' => 'value']);
    }
}


use tomkyle\MockPsr\PsrMockFactory;

class YourTest extends \PHPUnit\Framework\TestCase
{
    public function testSomething()
    {
        $factory = new PsrMockFactory('test');
        
        $response = $factory->mockResponse(200, 'OK');
        $container = $factory->mockContainer(['service' => 'value']);
        $client = $factory->mockClient($response);
    }
}


use tomkyle\MockPsr\PsrMockFactory;

class SomeUnitTest extends \PHPUnit\Framework\TestCase
{
	public function testSomething() 
	{
		$factory = new PsrMockFactory('test');

		// Psr\Http\Message\ServerRequestInterface
		$server_request = $factory->mockServerRequest();
		$attributes = array();
		$headers = array();
		$server_request = $factory->mockServerRequest($attributes, $headers);

		// Psr\Http\Message\UriInterface
		$uri = $factory->mockUri("https://test.com");

		// Psr\Http\Message\RequestInterface
		$request = $factory->mockRequest("GET", $uri);
		$request = $factory->mockRequest("GET", "/home");

		// Psr\Http\Message\StreamInterface
		$stream = $factory->mockStream("body string");

		// Psr\Http\Message\ResponseInterface
		$response = $factory->mockResponse(200, $stream);
		$response = $factory->mockResponse(404, "body string");
	}
}


use tomkyle\MockPsr\PsrMockFactory;

class SomeUnitTest extends \PHPUnit\Framework\TestCase
{
	public function testSomething() 
	{
		$factory = new PsrMockFactory('test');

		// Psr\Container\ContainerInterface
		$container = $factory->mockContainer();
		$container = $factory->mockContainer([
			'foo' => 'bar',
			'qux' => 'baz'        
		]);

		$container->has("foo"); // true
		$container->has("hello"); // false
		$container->get("hello"); // throws 'NotFoundExceptionInterface'
	}
}


use tomkyle\MockPsr\PsrMockFactory;

class SomeUnitTest extends \PHPUnit\Framework\TestCase
{
	public function testSomething() 
	{
		$factory = new PsrMockFactory('test');

		// Psr\Cache\CacheItemInterface
		$cache_item = $factory->mockCacheItem('cached value');
		$cache_item = $factory->mockCacheItem('value', ['isHit' => true]);
		$missing_item = $factory->mockMissingCacheItem('missing-key');

		// Psr\Cache\CacheItemPoolInterface
		$cache_pool = $factory->mockCacheItemPool();
		$cache_pool = $factory->mockCacheItemPool($cache_item);
		$cache_pool = $factory->mockCacheItemPool([
			'key1' => 'value1',
			'key2' => $cache_item
		]);
	}
}


use tomkyle\MockPsr\PsrMockFactory;

class SomeUnitTest extends \PHPUnit\Framework\TestCase
{
	public function testSomething() 
	{
		$factory = new PsrMockFactory('test');

		// Psr\Http\Server\RequestHandlerInterface
		$request_handler = $factory->mockRequestHandler();

		$response = $factory->mockResponse(404, "body string");
		$request_handler = $factory->mockRequestHandler( $response );
	}
}


use tomkyle\MockPsr\PsrMockFactory;

class SomeUnitTest extends \PHPUnit\Framework\TestCase
{
	public function testSomething() 
	{
		$factory = new PsrMockFactory('test');

		// Psr\Http\Message\RequestFactoryInterface
		$request_factory = $factory->mockRequestFactory();

		$request = $factory->mockRequest();
		$request_factory = $factory->mockRequestFactory( $request );


		// Psr\Http\Message\ResponseFactoryInterface
		$response_factory = $factory->mockResponseFactory();

		$response = $factory->mockResponse(404, "body string");
		$response_factory = $factory->mockResponseFactory( $response );
	}
}


use tomkyle\MockPsr\PsrMockFactory;

class SomeUnitTest extends \PHPUnit\Framework\TestCase
{
	public function testSomething() 
	{
		$factory = new PsrMockFactory('test');

		// Psr\Http\Client\ClientInterface
		$client = $factory->mockClient();

		$response = $factory->mockResponse(404, "body string");
		$client = $factory->mockClient( $response );
	}
}


use tomkyle\MockPsr\PsrMockFactory;

class SomeUnitTest extends \PHPUnit\Framework\TestCase
{
	public function testSomething() 
	{
		$factory = new PsrMockFactory('test');

		// \PDOStatement
		$execution_result = true;
		$stmt = $factory->mockPdoStatement($execution_result);
		$stmt = $factory->mockPdoStatement(true, array("foo" => "bar"));    

		// \PDO
		$pdo = $factory->mockPdo();
		$pdo = $factory->mockPdo(array("attribute" => \PDO::ATTR_ERRMODE));   
		
		$stmt_2 = $pdo->prepare("SELECT");
		// $stmt_2 will be a PDOStatement mock
	}
}