berrygoudswaard / callable-comparator
Makes it possible to use callables in PHPunit assertions
Installs: 1 488
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: >=5.5.9
- sebastian/comparator: ~1.1
- sebastian/exporter: ~1.2
Requires (Dev)
- codeclimate/php-test-reporter: 0.1.*
- phpunit/phpunit: ~4.6
This package is not auto-updated.
Last update: 2022-02-01 12:46:54 UTC
README
Makes it possible to use callables in PHPunit assertions
Installation
composer require noregression/callable-comparator
Usage
<?php require_once ('vendor/autoload.php'); use NoRegression\PHPUnit\CallableComparatorTrait; use NoRegression\PHPUnit\Comparator\Callables\CallableProxy; use NoRegression\PHPUnit\Comparator\Callables\IsDateTime; use NoRegression\PHPUnit\Comparator\Callables\IsUuid; use NoRegression\PHPUnit\Comparator\Callables\IsPasswordHashFor; class ExampleTest extends \PHPUnit_Framework_TestCase { use CallableComparatorTrait; public function setUp() { parent::setUp(); $this->setupCallableComparator(); } public function tearDown() { parent::tearDown(); $this->tearDownCallableComparator(); } public function testCallableComparator() { $data = [ 'id' => 'f4a2b7b0-e944-11e4-b571-0800200c9a66', 'modified' => '2015-03-22 01:12', 'bcrypt_password' => password_hash('password', PASSWORD_BCRYPT), 'default_password' => password_hash('password', PASSWORD_DEFAULT), 'emptystring' => '', 'contains' => 'This string contains "lazy fox".' ]; $expected = [ 'id' => new IsUuid(), 'modified' => new IsDateTime(), 'bcrypt_password' => new IsPasswordHashFor('password'), 'default_password' => new IsPasswordHashFor('password'), 'emptystring' => new CallableProxy([$this, 'assertEmpty']), 'contains' => new CallableProxy([$this, 'assertContains'], ['lazy fox']) ]; $this->assertEquals($expected, $data); } }