Skip to content

Commit 39fc73a

Browse files
committed
refactor: Fix phpstan method.impossibleType
1 parent 9de9856 commit 39fc73a

File tree

3 files changed

+41
-39
lines changed

3 files changed

+41
-39
lines changed

tests/system/Events/EventsTest.php

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use PHPUnit\Framework\Attributes\PreserveGlobalState;
2121
use PHPUnit\Framework\Attributes\RunInSeparateProcess;
2222
use PHPUnit\Framework\Attributes\WithoutErrorHandler;
23+
use stdClass;
2324

2425
/**
2526
* @internal
@@ -29,6 +30,8 @@ final class EventsTest extends CIUnitTestCase
2930
{
3031
/**
3132
* Accessible event manager instance
33+
*
34+
* @var MockEvents
3235
*/
3336
private Events $manager;
3437

@@ -181,63 +184,68 @@ public function testPriorityWithMultiple(): void
181184

182185
public function testRemoveListener(): void
183186
{
184-
$result = false;
187+
$user = $this->getEditableObject();
185188

186-
$callback = static function () use (&$result): void {
187-
$result = true;
189+
$callback = static function () use (&$user): void {
190+
$user->name = 'Boris';
191+
$user->age = 40;
188192
};
189193

190194
Events::on('foo', $callback);
191195

192-
Events::trigger('foo');
193-
$this->assertTrue($result);
196+
$this->assertTrue(Events::trigger('foo'));
197+
$this->assertSame('Boris', $user->name);
198+
199+
$user = $this->getEditableObject();
194200

195-
$result = false;
196201
$this->assertTrue(Events::removeListener('foo', $callback));
197202

198-
Events::trigger('foo');
199-
$this->assertFalse($result);
203+
$this->assertTrue(Events::trigger('foo'));
204+
$this->assertSame('Ivan', $user->name);
200205
}
201206

202207
public function testRemoveListenerTwice(): void
203208
{
204-
$result = false;
209+
$user = $this->getEditableObject();
205210

206-
$callback = static function () use (&$result): void {
207-
$result = true;
211+
$callback = static function () use (&$user): void {
212+
$user->name = 'Boris';
213+
$user->age = 40;
208214
};
209215

210216
Events::on('foo', $callback);
211217

212-
Events::trigger('foo');
213-
$this->assertTrue($result);
218+
$this->assertTrue(Events::trigger('foo'));
219+
$this->assertSame('Boris', $user->name);
220+
221+
$user = $this->getEditableObject();
214222

215-
$result = false;
216223
$this->assertTrue(Events::removeListener('foo', $callback));
217224
$this->assertFalse(Events::removeListener('foo', $callback));
218225

219-
Events::trigger('foo');
220-
$this->assertFalse($result);
226+
$this->assertTrue(Events::trigger('foo'));
227+
$this->assertSame('Ivan', $user->name);
221228
}
222229

223230
public function testRemoveUnknownListener(): void
224231
{
225-
$result = false;
232+
$user = $this->getEditableObject();
226233

227-
$callback = static function () use (&$result): void {
228-
$result = true;
234+
$callback = static function () use (&$user): void {
235+
$user->name = 'Boris';
236+
$user->age = 40;
229237
};
230238

231239
Events::on('foo', $callback);
232240

233-
Events::trigger('foo');
234-
$this->assertTrue($result);
241+
$this->assertTrue(Events::trigger('foo'));
242+
$this->assertSame('Boris', $user->name);
235243

236-
$result = false;
237-
$this->assertFalse(Events::removeListener('bar', $callback));
244+
$user = $this->getEditableObject();
238245

239-
Events::trigger('foo');
240-
$this->assertTrue($result);
246+
$this->assertFalse(Events::removeListener('bar', $callback));
247+
$this->assertTrue(Events::trigger('foo'));
248+
$this->assertSame('Boris', $user->name);
241249
}
242250

243251
public function testRemoveAllListenersWithSingleEvent(): void
@@ -315,4 +323,12 @@ public function testSimulate(): void
315323

316324
$this->assertSame(0, $result);
317325
}
326+
327+
private function getEditableObject(): stdClass {
328+
$user = new stdClass();
329+
$user->name = 'Ivan';
330+
$user->age = 30;
331+
332+
return clone $user;
333+
}
318334
}

utils/phpstan-baseline/loader.neon

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ includes:
2020
- method.alreadyNarrowedType.neon
2121
- method.childParameterType.neon
2222
- method.childReturnType.neon
23-
- method.impossibleType.neon
2423
- method.notFound.neon
2524
- method.unused.neon
2625
- missingType.callable.neon

utils/phpstan-baseline/method.impossibleType.neon

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)