mirror of
https://github.com/pestphp/pest.git
synced 2026-03-06 15:57:21 +01:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| be7fe41179 | |||
| 204f343831 |
@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [v0.3.2 (2020-09-13)](https://github.com/pestphp/pest/compare/v0.3.2...v0.3.3)
|
||||||
|
### Added
|
||||||
|
- `toHaveKeys` expectation ([204f343](https://github.com/pestphp/pest/commit/204f343831adc17bb3734553c24fac92d02f27c7))
|
||||||
|
|
||||||
## [v0.3.2 (2020-09-12)](https://github.com/pestphp/pest/compare/v0.3.1...v0.3.2)
|
## [v0.3.2 (2020-09-12)](https://github.com/pestphp/pest/compare/v0.3.1...v0.3.2)
|
||||||
### Added
|
### Added
|
||||||
- Support to PHPUnit 9.3.9, and 9.3.10 ([1318bf9](https://github.com/pestphp/pest/commit/97f98569bc86e8b87f8cde963fe7b4bf5399623b))
|
- Support to PHPUnit 9.3.9, and 9.3.10 ([1318bf9](https://github.com/pestphp/pest/commit/97f98569bc86e8b87f8cde963fe7b4bf5399623b))
|
||||||
|
|||||||
@ -376,14 +376,30 @@ final class Expectation
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Asserts that the value array has the provided $key.
|
* Asserts that the value array has the provided $key.
|
||||||
|
*
|
||||||
|
* @param string|int $key
|
||||||
*/
|
*/
|
||||||
public function toHaveKey(string $key): Expectation
|
public function toHaveKey($key): Expectation
|
||||||
{
|
{
|
||||||
Assert::assertArrayHasKey($key, $this->value);
|
Assert::assertArrayHasKey($key, $this->value);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Asserts that the value array has the provided $keys.
|
||||||
|
*
|
||||||
|
* @param array<int, int|string> $keys
|
||||||
|
*/
|
||||||
|
public function toHaveKeys(array $keys): Expectation
|
||||||
|
{
|
||||||
|
foreach ($keys as $key) {
|
||||||
|
$this->toHaveKey($key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asserts that the value is a directory.
|
* Asserts that the value is a directory.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -27,6 +27,26 @@ final class OppositeExpectation
|
|||||||
$this->original = $original;
|
$this->original = $original;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Asserts that the value array not has the provided $keys.
|
||||||
|
*
|
||||||
|
* @param array<int, int|string> $keys
|
||||||
|
*/
|
||||||
|
public function toHaveKeys(array $keys): Expectation
|
||||||
|
{
|
||||||
|
foreach ($keys as $key) {
|
||||||
|
try {
|
||||||
|
$this->original->toHaveKey($key);
|
||||||
|
} catch (ExpectationFailedException $e) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->throwExpectationFailedExpection('toHaveKey', [$key]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->original;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle dynamic method calls into the original expectation.
|
* Handle dynamic method calls into the original expectation.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -180,6 +180,11 @@
|
|||||||
PASS Tests\Expect\toHaveKey
|
PASS Tests\Expect\toHaveKey
|
||||||
✓ pass
|
✓ pass
|
||||||
✓ failures
|
✓ failures
|
||||||
|
✓ not failures
|
||||||
|
|
||||||
|
PASS Tests\Expect\toHaveKeys
|
||||||
|
✓ pass
|
||||||
|
✓ failures
|
||||||
✓ not failures
|
✓ not failures
|
||||||
|
|
||||||
PASS Tests\Expect\toHaveProperty
|
PASS Tests\Expect\toHaveProperty
|
||||||
@ -353,5 +358,5 @@
|
|||||||
✓ depends with defined arguments
|
✓ depends with defined arguments
|
||||||
✓ depends run test only once
|
✓ depends run test only once
|
||||||
|
|
||||||
Tests: 6 skipped, 208 passed
|
Tests: 6 skipped, 211 passed
|
||||||
|
|
||||||
15
tests/Expect/toHaveKeys.php
Normal file
15
tests/Expect/toHaveKeys.php
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use PHPUnit\Framework\ExpectationFailedException;
|
||||||
|
|
||||||
|
test('pass', function () {
|
||||||
|
expect(['a' => 1, 'b', 'c' => 'world'])->toHaveKeys(['a', 'c']);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('failures', function () {
|
||||||
|
expect(['a' => 1, 'b', 'c' => 'world'])->toHaveKeys(['a', 'd']);
|
||||||
|
})->throws(ExpectationFailedException::class);
|
||||||
|
|
||||||
|
test('not failures', function () {
|
||||||
|
expect(['a' => 1, 'hello' => 'world', 'c'])->not->toHaveKeys(['hello', 'c']);
|
||||||
|
})->throws(ExpectationFailedException::class);
|
||||||
Reference in New Issue
Block a user