Skip to content

Commit f93aec7

Browse files
committed
Merge remote-tracking branch 'origin/1.3.x' into 1.4.x
2 parents 77bdf96 + d5242a5 commit f93aec7

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

src/Type/PHPUnit/Assert/AssertTypeSpecifyingExtensionHelper.php

+14
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,20 @@ private static function getExpressionResolvers(): array
136136
{
137137
if (self::$resolvers === null) {
138138
self::$resolvers = [
139+
'Count' => static function (Scope $scope, Arg $expected, Arg $actual): Identical {
140+
return new Identical(
141+
$expected->value,
142+
new FuncCall(new Name('count'), [$actual])
143+
);
144+
},
145+
'NotCount' => static function (Scope $scope, Arg $expected, Arg $actual): BooleanNot {
146+
return new BooleanNot(
147+
new Identical(
148+
$expected->value,
149+
new FuncCall(new Name('count'), [$actual])
150+
)
151+
);
152+
},
139153
'InstanceOf' => static function (Scope $scope, Arg $class, Arg $object): Instanceof_ {
140154
return new Instanceof_(
141155
$object->value,

tests/Type/PHPUnit/data/assert-function.php

+21
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
use function PHPUnit\Framework\assertContains;
88
use function PHPUnit\Framework\assertContainsEquals;
99
use function PHPUnit\Framework\assertContainsOnlyInstancesOf;
10+
use function PHPUnit\Framework\assertCount;
11+
use function PHPUnit\Framework\assertNotCount;
1012
use function PHPUnit\Framework\assertEmpty;
1113
use function PHPUnit\Framework\assertInstanceOf;
1214
use function PHPUnit\Framework\assertObjectHasAttribute;
@@ -90,4 +92,23 @@ public function containsOnlyInstancesOf(array $a, \Traversable $b): void
9092
assertType('Traversable', $b);
9193
}
9294

95+
public function count(array $a, \Countable $b): void
96+
{
97+
assertCount(3, $a);
98+
assertType('non-empty-array', $a);
99+
100+
assertCount(7, $b);
101+
assertType('Countable', $b);
102+
}
103+
104+
public function notCount(array $a, array $b): void
105+
{
106+
assertNotCount(0, $a);
107+
assertType('non-empty-array', $a);
108+
109+
// still might be empty
110+
assertNotCount(1, $b);
111+
assertType('array', $b);
112+
}
113+
93114
}

0 commit comments

Comments
 (0)