PHP code example of ohseesoftware / laravel-veneer
1. Go to this page and download the library: Download ohseesoftware/laravel-veneer 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/ */
use OhSeeSoftware\LaravelVeneer\Providers\Cronofy\CreateChannelMock;
use OhSeeSoftware\LaravelVeneer\Providers\Cronofy\CronofyMock;
use OhSeeSoftware\LaravelVeneer\Traits\VeneerMocks;
class MyTest extends TestCase
{
use VeneerMocks;
public function testItDoesSomething()
{
// Given, mock the 3rd party SDK
$this->veneer(CronofyMock::make()->add(CreateChannelMock::make()));
// When, call your code that will call the 3rd party SDK
$this->post('/channel');
// Then, assert your code handled the 3rd party response correctly
$this->assertDatabaseHas('channels', [
'cronofy_channel_id' => 'chn_0000000000'
]);
}
}
public function testItDoesSomething()
{
// Given, mock the 3rd party SDK with a custom `channel.channel_id` value
$this->veneer(
CronofyMock::make()->add(
CreateChannelMock::make()->merge('channel.channel_id', 'chn_123456')
)
);
// When, call your code that will call the 3rd party SDK
$this->post('/channel');
// Then, assert your code handled the 3rd party response correctly
$this->assertDatabaseHas('channels', [
'cronofy_channel_id' => 'chn_123456'
]);
}
namespace OhSeeSoftware\LaravelVeneer\Providers\Cronofy;
use OhSeeSoftware\LaravelVeneer\Providers\MockProvider;
class CronofyMock extends MockProvider
{
/**
* FQDN of the class being mocked.
*/
public function mockedClass(): string
{
// Laravel Veneer will apply a partial mock to the `\Cronofy\Cronofy` class
return \Cronofy\Cronofy::class;
}
}
namespace OhSeeSoftware\LaravelVeneer\Providers\Cronofy\Channels;
use OhSeeSoftware\LaravelVeneer\Providers\MockedMethod;
class ListChannelsMock extends MockedMethod
{
public function method(): string
{
/**
* Name of the method being mocked.
*/
return 'listChannels';
}
}
/**
* Path to the fixture data file, if applicable.
*
* The value should be a relative path from the `fixtures` directory.
*/
public function fixturePath(): ?string
{
return 'cronofy/responses/v1/channels/index.json';
}
/**
* The result returned from the mocked method.
*/
public function result()
{
return 'hello world!'; // Return 'hello world!' whenever this mocked method is called
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.