Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7df4bd1

Browse files
Merge branch 'feature/40-phpunit-8.4'
Close #40 Fix #39
2 parents 04f78fe + dc012f0 commit 7df4bd1

14 files changed

+290
-41
lines changed

‎.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.phpunit.result.cache
2+
vendor/
3+
composer.lock

‎.travis.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ cache:
88

99
env:
1010
- PHPUNIT_VERSION=dev-master
11+
- PHPUNIT_VERSION=~8.4.0
12+
- PHPUNIT_VERSION=~8.3.0
1113
- PHPUNIT_VERSION=~8.2.0
1214
- PHPUNIT_VERSION=~8.1.0
1315
- PHPUNIT_VERSION=~8.0.0
@@ -36,6 +38,10 @@ matrix:
3638
exclude:
3739
- php: 7.1
3840
env: PHPUNIT_VERSION=dev-master
41+
- php: 7.1
42+
env: PHPUNIT_VERSION=~8.4.0
43+
- php: 7.1
44+
env: PHPUNIT_VERSION=~8.3.0
3945
- php: 7.1
4046
env: PHPUNIT_VERSION=~8.2.0
4147
- php: 7.1
@@ -44,6 +50,10 @@ matrix:
4450
env: PHPUNIT_VERSION=~8.0.0
4551
- php: 7
4652
env: PHPUNIT_VERSION=dev-master
53+
- php: 7
54+
env: PHPUNIT_VERSION=~8.4.0
55+
- php: 7
56+
env: PHPUNIT_VERSION=~8.3.0
4757
- php: 7
4858
env: PHPUNIT_VERSION=~8.2.0
4959
- php: 7

‎autoload.php

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

3-
if (! interface_exists(\PHPUnit\Framework\MockObject\Matcher\Invocation::class)) {
3+
if (class_exists(\PHPUnit\Framework\MockObject\Rule\InvocationOrder::class)) {
4+
class_alias(
5+
\PHPUnit\Framework\MockObject\Rule\InvocationOrder::class,
6+
\PHPUnit\Framework\MockObject\Matcher\Invocation::class
7+
);
8+
} elseif (! interface_exists(\PHPUnit\Framework\MockObject\Matcher\Invocation::class)) {
49
class_alias(
510
\PHPUnit_Framework_MockObject_Matcher_Invocation::class,
611
\PHPUnit\Framework\MockObject\Matcher\Invocation::class
@@ -30,21 +35,32 @@ class_alias(
3035
);
3136
}
3237

38+
if (class_exists(\PHPUnit\Framework\MockObject\Rule\MethodName::class)) {
39+
class_alias(
40+
\PHPUnit\Framework\MockObject\Rule\MethodName::class,
41+
\PHPUnit\Framework\MockObject\Matcher\MethodName::class
42+
);
43+
}
44+
3345
if (! class_exists(\PHPUnit\Framework\MockObject\Matcher\MethodName::class)) {
3446
class_alias(
3547
\PHPUnit_Framework_MockObject_Matcher_MethodName::class,
3648
\PHPUnit\Framework\MockObject\Matcher\MethodName::class
3749
);
3850
}
3951

40-
if (! interface_exists(\PHPUnit\Framework\MockObject\Stub\MatcherCollection::class)) {
52+
if (!class_exists(\PHPUnit\Framework\MockObject\InvocationHandler::class)
53+
&& !interface_exists(\PHPUnit\Framework\MockObject\Stub\MatcherCollection::class)
54+
) {
4155
class_alias(
4256
\PHPUnit_Framework_MockObject_Stub_MatcherCollection::class,
4357
\PHPUnit\Framework\MockObject\Stub\MatcherCollection::class
4458
);
4559
}
4660

47-
if (! class_exists(\PHPUnit\Framework\MockObject\InvocationMocker::class)) {
61+
if (!class_exists(\PHPUnit\Framework\MockObject\InvocationHandler::class)
62+
&& !class_exists(\PHPUnit\Framework\MockObject\InvocationMocker::class)
63+
) {
4864
class_alias(
4965
\PHPUnit_Framework_MockObject_InvocationMocker::class,
5066
\PHPUnit\Framework\MockObject\InvocationMocker::class
@@ -65,6 +81,11 @@ class_alias(
6581
}
6682

6783
if (class_exists(\PHPUnit\Runner\Version::class)
84+
&& version_compare(\PHPUnit\Runner\Version::id(), '8.4.0') >= 0
85+
) {
86+
class_alias(\phpmock\phpunit\DefaultArgumentRemoverReturnTypes84::class, \phpmock\phpunit\DefaultArgumentRemover::class);
87+
class_alias(\phpmock\phpunit\MockObjectProxyReturnTypes84::class, \phpmock\phpunit\MockObjectProxy::class);
88+
} elseif (class_exists(\PHPUnit\Runner\Version::class)
6889
&& version_compare(\PHPUnit\Runner\Version::id(), '8.1.0') >= 0
6990
) {
7091
class_alias(\phpmock\phpunit\DefaultArgumentRemoverReturnTypes::class, \phpmock\phpunit\DefaultArgumentRemover::class);

‎classes/DefaultArgumentRemoverNoReturnTypes.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
*/
1717
class DefaultArgumentRemoverNoReturnTypes implements InvocationInterface
1818
{
19-
2019
/**
2120
* @SuppressWarnings(PHPMD)
2221
*/

‎classes/DefaultArgumentRemoverReturnTypes.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
*/
1717
class DefaultArgumentRemoverReturnTypes implements InvocationInterface
1818
{
19-
2019
/**
2120
* @SuppressWarnings(PHPMD)
2221
*/
@@ -31,8 +30,8 @@ public function matches(Invocation $invocation) : bool
3130
{
3231
$iClass = class_exists(Invocation::class);
3332

34-
if ($invocationinstanceofInvocation\StaticInvocation
35-
|| $iClass
33+
if ($iClass
34+
|| $invocationinstanceofInvocation\StaticInvocation
3635
) {
3736
$this->removeDefaultArguments(
3837
$invocation,
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
<?php
2+
3+
namespace phpmock\phpunit;
4+
5+
use phpmock\generator\MockFunctionGenerator;
6+
use PHPUnit\Framework\MockObject\Invocation;
7+
use PHPUnit\Framework\MockObject\Rule\InvocationOrder;
8+
9+
/**
10+
* Removes default arguments from the invocation.
11+
*
12+
* @author Markus Malkusch <markus@malkusch.de>
13+
* @link bitcoin:1335STSwu9hST4vcMRppEPgENMHD2r1REK Donations
14+
* @license http://www.wtfpl.net/txt/copying/ WTFPL
15+
* @internal
16+
*/
17+
class DefaultArgumentRemoverReturnTypes84 extends InvocationOrder
18+
{
19+
/**
20+
* @SuppressWarnings(PHPMD)
21+
*/
22+
public function invokedDo(Invocation $invocation)
23+
{
24+
}
25+
26+
/**
27+
* @SuppressWarnings(PHPMD)
28+
*/
29+
public function matches(Invocation $invocation) : bool
30+
{
31+
$iClass = class_exists(Invocation::class);
32+
33+
if ($iClass
34+
|| $invocation instanceof Invocation\StaticInvocation
35+
) {
36+
$this->removeDefaultArguments(
37+
$invocation,
38+
$iClass ? Invocation::class : Invocation\StaticInvocation::class
39+
);
40+
} else {
41+
MockFunctionGenerator::removeDefaultArguments($invocation->parameters);
42+
}
43+
44+
return false;
45+
}
46+
47+
public function verify() : void
48+
{
49+
}
50+
51+
/**
52+
* This method is not defined in the interface, but used in
53+
* PHPUnit_Framework_MockObject_InvocationMocker::hasMatchers().
54+
*
55+
* @return boolean
56+
* @see \PHPUnit_Framework_MockObject_InvocationMocker::hasMatchers()
57+
*/
58+
public function hasMatchers()
59+
{
60+
return false;
61+
}
62+
63+
public function toString() : string
64+
{
65+
return __CLASS__;
66+
}
67+
68+
/**
69+
* Remove default arguments from StaticInvocation or its children (hack)
70+
*
71+
* @SuppressWarnings(PHPMD)
72+
*/
73+
private function removeDefaultArguments(Invocation $invocation, string $class)
74+
{
75+
$remover = function () {
76+
MockFunctionGenerator::removeDefaultArguments($this->parameters);
77+
};
78+
79+
$remover->bindTo($invocation, $class)();
80+
}
81+
}

‎classes/MockDisablerPHPUnit6.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
*/
1919
class MockDisablerPHPUnit6 extends BaseTestListener
2020
{
21-
2221
/**
2322
* @var Deactivatable The function mocks.
2423
*/

‎classes/MockDisablerPHPUnit7.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
*/
1919
class MockDisablerPHPUnit7 extends BaseTestListener
2020
{
21-
2221
/**
2322
* @var Deactivatable The function mocks.
2423
*/

‎classes/MockObjectProxyNoReturnTypes.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
*/
1717
class MockObjectProxyNoReturnTypes implements MockObject
1818
{
19-
2019
/**
2120
* @var MockObject $mockObject The mock object.
2221
*/

‎classes/MockObjectProxyReturnTypes.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,11 @@
1818
*/
1919
class MockObjectProxyReturnTypes implements MockObject
2020
{
21-
2221
/**
2322
* @var MockObject $mockObject The mock object.
2423
*/
2524
private $mockObject;
26-
25+
2726
/**
2827
* Inject the subject.
2928
*
@@ -33,7 +32,7 @@ public function __construct(MockObject $mockObject)
3332
{
3433
$this->mockObject = $mockObject;
3534
}
36-
35+
3736
/**
3837
* @SuppressWarnings(PHPMD)
3938
*/

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /