Skip to content

Commit 5b38655

Browse files
committed
Merge with dev
1 parent 8152de6 commit 5b38655

File tree

9 files changed

+103
-7
lines changed

9 files changed

+103
-7
lines changed

.github/workflows/php.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: PHP Composer
1+
name: PHPUnit
22

33
on:
44
push:
@@ -17,6 +17,11 @@ jobs:
1717
steps:
1818
- uses: actions/checkout@v3
1919

20+
- name: Setup PHP 8.1
21+
uses: shivammathur/setup-php@v2
22+
with:
23+
php-version: '8.1'
24+
2025
- name: Check PHP Version
2126
run: php -v
2227

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ composer.lock
99
/.phpunit.result.cache
1010

1111
/coverage
12+
/.phpunit.cache

phpunit.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.3/phpunit.xsd"
4+
bootstrap="vendor/autoload.php"
5+
cacheDirectory=".phpunit.cache"
6+
executionOrder="depends,defects"
7+
requireCoverageMetadata="false"
8+
beStrictAboutCoverageMetadata="false"
9+
beStrictAboutOutputDuringTests="false"
10+
failOnRisky="true"
11+
failOnWarning="true">
12+
<testsuites>
13+
<testsuite name="default">
14+
<directory>tests</directory>
15+
</testsuite>
16+
</testsuites>
17+
18+
<source restrictDeprecations="true" restrictNotices="true" restrictWarnings="true">
19+
<include>
20+
<directory>src</directory>
21+
</include>
22+
</source>
23+
</phpunit>

src/ArrayContainsTrait.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@
1111

1212
trait ArrayContainsTrait
1313
{
14+
/**
15+
* @param $subset
16+
* @param $array
17+
* @param bool $strict
18+
* @param string $message
19+
* @return void
20+
*/
1421
public static function assertArrayContains($subset, $array, bool $strict = false, string $message = '')
1522
{
1623
if (!(is_array($subset) || $subset instanceof ArrayAccess || $subset instanceof Iterator)) {
@@ -30,6 +37,13 @@ public static function assertArrayContains($subset, $array, bool $strict = false
3037
PhpUnitAssert::assertThat($array, $constraint, $message);
3138
}
3239

40+
/**
41+
* @param $subset
42+
* @param $array
43+
* @param bool $strict
44+
* @param string $message
45+
* @return void
46+
*/
3347
public static function assertArrayContainsOnly($subset, $array, bool $strict = false, string $message = '')
3448
{
3549
if (!(is_array($subset) || $subset instanceof ArrayAccess || $subset instanceof Iterator)) {

src/Constraint/ArrayContainsOnly.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ protected function _matchAssoc($other): bool
1515
if (!array_key_exists($key, $subset)) {
1616
$failure = new ComparisonFailure($this->subset, $other, var_export($this->subset, true), var_export($other, true));
1717
$this->fail($other, "Actual data contains unexpected keys: ($key)", $failure);
18-
};
18+
}
1919
}
2020
}
2121
return $result;

tests/ArrayContainsTraitTest.php

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
namespace Alezhu\PHPUnitArrayContainsAsserts\Tests;
4+
5+
6+
use Alezhu\PHPUnitArrayContainsAsserts\Assert;
7+
use PHPUnit\Framework\InvalidArgumentException;
8+
use PHPUnit\Framework\TestCase;
9+
10+
class ArrayContainsTraitTest extends TestCase
11+
{
12+
public function test_assertArrayContains_should_be_valid_for_valid_arguments()
13+
{
14+
Assert::assertArrayContains(["foo" => "bar", "baz" => 1], ["foo" => "bar", "baz" => 1]);
15+
}
16+
17+
public function test_assertArrayContainsOnly_should_be_valid_for_valid_arguments()
18+
{
19+
Assert::assertArrayContainsOnly(["foo" => "bar", "baz" => 1], ["foo" => "bar", "baz" => 1]);
20+
}
21+
22+
public function test_assertArrayContains_should_raise_exception_if_passed_not_array_like_subset()
23+
{
24+
$this->expectException(InvalidArgumentException::class);
25+
$this->expectExceptionMessage("Argument #1 must be array or ArrayAccess or Iterator");
26+
27+
Assert::assertArrayContains("string", []);
28+
}
29+
30+
public function test_assertArrayContains_should_raise_exception_if_passed_not_array_like_actual()
31+
{
32+
$this->expectException(InvalidArgumentException::class);
33+
$this->expectExceptionMessage("Argument #2 must be array or ArrayAccess or Iterator");
34+
35+
Assert::assertArrayContains([], "string");
36+
}
37+
38+
public function test_assertArrayContainsOnly_should_raise_exception_if_passed_not_array_like_subset()
39+
{
40+
$this->expectException(InvalidArgumentException::class);
41+
$this->expectExceptionMessage("Argument #1 must be array or ArrayAccess or Iterator");
42+
43+
Assert::assertArrayContainsOnly("string", []);
44+
}
45+
46+
public function test_assertArrayContainsOnly_should_raise_exception_if_passed_not_array_like_actual()
47+
{
48+
$this->expectException(InvalidArgumentException::class);
49+
$this->expectExceptionMessage("Argument #2 must be array or ArrayAccess or Iterator");
50+
51+
Assert::assertArrayContainsOnly([], "string");
52+
}
53+
}

tests/Alezhu/PHPUnitArrayContainsAsserts/Constraint/ArrayContainsBaseTest.php renamed to tests/Constraint/ArrayContainsBaseTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Alezhu\PHPUnitArrayContainsAsserts\Constraint\Tests;
3+
namespace Alezhu\PHPUnitArrayContainsAsserts\Tests\Constraint;
44

55
use Alezhu\PHPUnitArrayContainsAsserts\Constraint\ArrayContainsBase;
66
use ArrayAccess;
@@ -20,7 +20,7 @@ public function isAssocArray($array): bool
2020
return parent::_isAssocArray($array);
2121
}
2222

23-
public function toArray($value)
23+
public function toArray($value): array
2424
{
2525
return parent::_toArray($value);
2626
}
@@ -204,7 +204,7 @@ public function test_toArray_should_throw_exception_4_non_array_like_type()
204204
$value = "1,2,3";
205205
$this->expectException(AssertionFailedError::class);
206206
$this->expectExceptionMessage('Not supported type');
207-
$result = $instance->toArray($value);
207+
$instance->toArray($value);
208208

209209
}
210210
}

tests/Alezhu/PHPUnitArrayContainsAsserts/Constraint/ArrayContainsOnlyTest.php renamed to tests/Constraint/ArrayContainsOnlyTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Alezhu\PHPUnitArrayContainsAsserts\Constraint\Tests;
3+
namespace Alezhu\PHPUnitArrayContainsAsserts\Tests\Constraint;
44

55
use Alezhu\PHPUnitArrayContainsAsserts\Constraint\ArrayContainsOnly;
66
use PHPUnit\Framework\ExpectationFailedException;

tests/Alezhu/PHPUnitArrayContainsAsserts/Constraint/ArrayContainsTest.php renamed to tests/Constraint/ArrayContainsTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Alezhu\PHPUnitArrayContainsAsserts\Constraint\Tests;
3+
namespace Alezhu\PHPUnitArrayContainsAsserts\Tests\Constraint;
44

55
use Alezhu\PHPUnitArrayContainsAsserts\Constraint\ArrayContains;
66
use PHPUnit\Framework\AssertionFailedError;

0 commit comments

Comments
 (0)