Skip to content

Commit dca69cc

Browse files
committed
Move asserts to trait
Offering a trait allows users to easily hook this class into their own test cases with ease, as an option of usage.
1 parent 10614ef commit dca69cc

File tree

2 files changed

+45
-36
lines changed

2 files changed

+45
-36
lines changed

src/ArraySubsetAsserts.php

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace DMS\PHPUnitExtensions\ArraySubset;
5+
6+
use ArrayAccess;
7+
use DMS\PHPUnitExtensions\ArraySubset\Constraint\ArraySubset;
8+
use Exception;
9+
use function is_array;
10+
use PHPUnit\Framework\Assert as PhpUnitAssert;
11+
use PHPUnit\Framework\ExpectationFailedException;
12+
use PHPUnit\Util\InvalidArgumentHelper;
13+
use SebastianBergmann\RecursionContext\InvalidArgumentException;
14+
15+
trait ArraySubsetAsserts
16+
{
17+
/**
18+
* Asserts that an array has a specified subset.
19+
*
20+
* @param array|ArrayAccess $subset
21+
* @param array|ArrayAccess $array
22+
*
23+
* @throws ExpectationFailedException
24+
* @throws InvalidArgumentException
25+
* @throws Exception
26+
*/
27+
public static function assertArraySubset($subset, $array, bool $checkForObjectIdentity = false, string $message = ''): void
28+
{
29+
if (! (is_array($subset) || $subset instanceof ArrayAccess)) {
30+
throw InvalidArgumentHelper::factory(
31+
1,
32+
'array or ArrayAccess'
33+
);
34+
}
35+
if (! (is_array($array) || $array instanceof ArrayAccess)) {
36+
throw InvalidArgumentHelper::factory(
37+
2,
38+
'array or ArrayAccess'
39+
);
40+
}
41+
$constraint = new ArraySubset($subset, $checkForObjectIdentity);
42+
PhpUnitAssert::assertThat($array, $constraint, $message);
43+
}
44+
}

src/Assert.php

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,7 @@
33

44
namespace DMS\PHPUnitExtensions\ArraySubset;
55

6-
use ArrayAccess;
7-
use DMS\PHPUnitExtensions\ArraySubset\Constraint\ArraySubset;
8-
use Exception;
9-
use PHPUnit\Framework\Assert as PhpUnitAssert;
10-
use PHPUnit\Framework\ExpectationFailedException;
11-
use PHPUnit\Util\InvalidArgumentHelper;
12-
use SebastianBergmann\RecursionContext\InvalidArgumentException;
13-
use function is_array;
14-
156
final class Assert
167
{
17-
/**
18-
* Asserts that an array has a specified subset.
19-
*
20-
* @param array|ArrayAccess $subset
21-
* @param array|ArrayAccess $array
22-
*
23-
* @throws ExpectationFailedException
24-
* @throws InvalidArgumentException
25-
* @throws Exception
26-
*/
27-
public static function assertArraySubset($subset, $array, bool $checkForObjectIdentity = false, string $message = ''): void
28-
{
29-
if (! (is_array($subset) || $subset instanceof ArrayAccess)) {
30-
throw InvalidArgumentHelper::factory(
31-
1,
32-
'array or ArrayAccess'
33-
);
34-
}
35-
if (! (is_array($array) || $array instanceof ArrayAccess)) {
36-
throw InvalidArgumentHelper::factory(
37-
2,
38-
'array or ArrayAccess'
39-
);
40-
}
41-
$constraint = new ArraySubset($subset, $checkForObjectIdentity);
42-
PhpUnitAssert::assertThat($array, $constraint, $message);
43-
}
8+
use ArraySubsetAsserts;
449
}

0 commit comments

Comments
 (0)