Stars: 127
Forks: 5
Pull Requests: 0
Issues: 0
Watchers: 13
Last Updated: 2023-06-28 21:00:51
[READ-ONLY] Utility classes, test assertions and mocking framework extracted from Ouzo framework.
License: MIT License
Languages: PHP
Utility classes, test assertions and mocking framework extracted from Ouzo framework. We are compatible with PHP 7.2 and later.
Couple of examples.
$result = FluentArray::from($users)
->map(Functions::extractField('name'))
->filter(Functions::notEmpty())
->unique()
->toArray();$result = FluentIterator::fromArray([1, 2, 3])
->cycle()
->limit(10)
->reindex()
->toArray(); // [1, 2, 3, 1, 2, 3, 1, 2, 3, 1]$product = new Product(['name' => 'super phone']);
$function = FluentFunctions::extractField('name')
->removePrefix('super')
->prepend(' extra')
->append('! ')
->surroundWith("***");
$result = Functions::call($function, $product); //=> '*** extra phone! ***'$phones = Arrays::filter($products, FluentFunctions::extractField('type')->equals('PHONE'));$cities = Arrays::map($users, Functions::extract()->getAddress('home')->city);$string = Clock::now()
->plusYears(1)
->plusMonths(2)
->minusDays(3)
->format();$product1 = new Product(['name' => 'b']);
$product2 = new Product(['name' => 'c']);
$product3 = new Product(['name' => 'a']);
$result = Arrays::sort([$product1, $product2, $product3], Comparator::compareBy('name'));$animals = ['cat', 'dog', 'pig'];
Assert::thatArray($animals)->hasSize(3)->contains('cat');Fluent assertions for strings:
Assert::thatString("Frodo")
->startsWith("Fro")
->endsWith("do")
->contains("rod")
->doesNotContain("fro")
->hasSize(5);$mock = Mock::create();
Mock::when($mock)->someMethod('arg')->thenReturn('123');
$result = $mock->someMethod('arg');
$this->assertEquals('123', $result);
Mock::verify($mock)->method('arg');$foo = new Foo();
CatchException::when($foo)->method();
CatchException::assertThat()->isInstanceOf("FooException");This is just a taste of Ouzo. Look at the documentation for more goodies.
Download from github or simply add composer dependency:
composer require letsdrink/ouzo-goodiesTutorials:
Utilities:
Tests:
Check out full docs at http://ouzo.readthedocs.org
For ideas, questions, discussions write to [email protected].
Ouzo has dropped support for PHP versions older than 7.2 since Ouzo 2.x. If you want to use Ouzo with PHP 5.6, 7.0 or 7.1, please try Ouzo 1.x branch.