Skip to content

Commit 8bc54da

Browse files
Add more unit tests for Listener
1 parent 84b5c55 commit 8bc54da

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

tests/phpunit/event/AsyncEventTest.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,9 @@ function(TestGrandchildAsyncEvent $event) use (&$firstCompleted, &$run) : ?Promi
127127
$resolver->resolve(null);
128128
self::assertSame(2, $run, "Expected feedback from 2 handlers");
129129
}
130+
131+
public function testAsyncHandlerFromListener() : void {
132+
self::expectNotToPerformAssertions();
133+
$this->pluginManager->registerEvents(new TestAsyncListener(), $this->mockPlugin);
134+
}
130135
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php
2+
3+
/*
4+
*
5+
* ____ _ _ __ __ _ __ __ ____
6+
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
7+
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
8+
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
9+
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
10+
*
11+
* This program is free software: you can redistribute it and/or modify
12+
* it under the terms of the GNU Lesser General Public License as published by
13+
* the Free Software Foundation, either version 3 of the License, or
14+
* (at your option) any later version.
15+
*
16+
* @author PocketMine Team
17+
* @link http://www.pocketmine.net/
18+
*
19+
*
20+
*/
21+
22+
declare(strict_types=1);
23+
24+
namespace pocketmine\event;
25+
26+
use pocketmine\event\fixtures\TestParentAsyncEvent;
27+
use pocketmine\promise\Promise;
28+
use pocketmine\promise\PromiseResolver;
29+
30+
class TestAsyncListener implements Listener{
31+
public function handleAsyncEventReturningNull(TestParentAsyncEvent $event) : null {
32+
return null;
33+
}
34+
35+
public function handleAsyncEventReturningPromise(TestParentAsyncEvent $event) : Promise {
36+
/** @var PromiseResolver<null> $resolver */
37+
$resolver = new PromiseResolver();
38+
$resolver->resolve(null);
39+
return $resolver->getPromise();
40+
}
41+
42+
public function handleAsyncEventReturningNullAndPromise(TestParentAsyncEvent $event) : ?Promise {
43+
return null;
44+
}
45+
}

0 commit comments

Comments
 (0)