1. Go to this page and download the library: Download ciareis/bypass 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/ */
ciareis / bypass example snippets
//Open a new Bypass server
$bypass = Bypass::open();
//Open a new Bypass using port 8081
$bypass = Bypass::open(8081);
use Ciareis\Bypass\Bypass;
//Json body
$body = '{"username": "john", "name": "John Smith", "total": 1250}';
//Route retuning the JSON body with HTTP Status 200
$bypass->addRoute(method: 'GET', uri: '/v1/demo/john', status: 200, body: $body);
//Instantiates a DemoService class
$service = new DemoService();
//Configure your service to access Bypass URL
$response = $service->setBaseUrl($bypass->getBaseUrl())
->getTotalByUser('john');
//Your test assertions here...
use Ciareis\Bypass\Bypass;
//Reads a PDF file
$demoFile = \file_get_contents('storage/pdfs/demo.pdf');
//File Route returning a binary file with HTTP Status 200
$bypass->addFileRoute(method: 'GET', uri: '/v1/myfile', status: 200, file: $demoFile);
//Instantiates a DemoService class
$service = new DemoService();
//Configure your service to access Bypass URL
$response = $service->setBaseUrl($bypass->getBaseUrl())
->getPdf();
//Your test assertions here...
use Ciareis\Bypass\Bypass;
use Ciareis\Bypass\Route;
//Create and serve routes
$bypass = Bypass::serve(
Route::ok(uri: '/v1/demo/john', body: ['username' => 'john', 'name' => 'John Smith', 'total' => 1250]), //method GET, status 200
Route::notFound(uri: '/v1/demo/wally') //method GET, status 404
);
//Instantiates a DemoService class
$service = new DemoService();
$service->setBaseUrl($bypass->getBaseUrl());
//Consumes the "OK (200)" route
$responseOk = $service->getTotalByUser('john'); //200 - OK with total => 1250
//Consumes the "Not Found (404)" route
$responseNotFound = $service->getTotalByUser('wally'); //404 - Not found
//Your test assertions here...
use Ciareis\Bypass\Bypass;
use Ciareis\Bypass\Route;
Bypass::serve(
Route::badRequest(uri: '/v1/users?filter=foo', body: ['error' => 'Filter parameter foo is not allowed.'], method: 'GET')
);
//Json body
$body = '{"username": "john", "name": "John Smith", "total": 1250}';
//Defines a route which must be called two times
$bypass->addRoute(method: 'GET', uri: '/v1/demo/john', status: 200, body: $body, times: 2);
//Instantiates a DemoService class
$service = new DemoService();
//Consumes the service using the Bypass URL
$response = $service->setBaseUrl($bypass->getBaseUrl())
->getTotalByUser('john');
$bypass->assertRoutes();
//Your test assertions here...
use Ciareis\Bypass\Bypass;
//Opens a new Bypass server
$bypass = Bypass::open();
//Retrieves the Bypass URL
$bypassUrl = $bypass->getBaseUrl();
//Json body
$body = '{"games":[{"id":1, "name":"game 1","points":25},{"id":2, "name":"game 2","points":10}],"is_active":true}';
//Defines a route
$bypass->addRoute(method: 'GET', uri: '/v1/score/johndoe', status: 200, body: $body);
//Instantiates a TotalScoreService
$service = new TotalScoreService();
//Configure your service to access Bypass URL
$response = $serivce
->setBaseUrl($bypassUrl) // set the URL to the Bypass URL
->getTotalScoreByUsername('johndoe'); //returns 35
//Pest PHP verifies that response is 35
expect($response)->toBe(35);
//PHPUnit verifies that response is 35
$this->assertSame($response, 35);
use Ciareis\Bypass\Bypass;
it('properly returns the total score by username', function () {
//Opens a new Bypass server
$bypass = Bypass::open();
//Json body
$body = '{"games":[{"id":1, "name":"game 1","points":25},{"id":2, "name":"game 2","points":10}],"is_active":true}';
//Defines a route
$bypass->addRoute(method: 'GET', uri: '/v1/score/johndoe', status: 200, body: $body);
//Configure your service to access Bypass URL
$service = new TotalScoreService();
$response = $service
->setBaseUrl($bypass->getBaseUrl())
->getTotalScoreByUsername('johndoe');
//Verifies that response is 35
expect($response)->toBe(35);
});
it('properly gets the logo', function () {
//Opens a new Bypass server
$bypass = Bypass::open();
//Reads the file
$filePath = 'docs/img/logo.png';
$file = \file_get_contents($filePath);
//Defines a route
$bypass->addFileRoute(method: 'GET', uri: $filePath, status: 200, file: $file);
//Configure your service to access Bypass URL
$service = new LogoService();
$response = $service->setBaseUrl($bypass->getBaseUrl())
->getLogo();
// asserts
expect($response)->toEqual($file);
});
use Ciareis\Bypass\Bypass;
class BypassTest extends TestCase
{
public function test_total_score_by_username(): void
{
//Opens a new Bypass server
$bypass = Bypass::open();
//Json body
$body = '{"games":[{"id":1,"name":"game 1","points":25},{"id":2,"name":"game 2","points":10}],"is_active":true}';
//Defines a route
$bypass->addRoute(method: 'GET', uri: '/v1/score/johndoe', status: 200, body: $body);
//Configure your service to access Bypass URL
$service = new TotalScoreService();
$response = $service
->setBaseUrl($bypass->getBaseUrl())
->getTotalScoreByUsername('johndoe');
//Verifies that response is 35
$this->assertSame(35, $response);
}
public function test_gets_logo(): void
{
//Opens a new Bypass server
$bypass = Bypass::open();
//Reads the file
$filePath = 'docs/img/logo.png';
$file = \file_get_contents($filePath);
//Defines a route
$bypass->addFileRoute(method: 'GET', uri: $filePath, status: 200, file: $file);
//Configure your service to access Bypass URL
$service = new LogoService();
$response = $service->setBaseUrl($bypass->getBaseUrl())
->getLogo();
$this->assertSame($response, $file);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.