33namespace tests ;
44
55use machour \yii2 \wpn \exceptions \InvalidApplication ;
6+ use machour \yii2 \wpn \models \WpnSubscription ;
67use machour \yii2 \wpn \Module ;
78use Minishlink \WebPush \WebPush ;
89use tests \fixtures \WpnAppFixture ;
910use tests \fixtures \WpnCampaignFixture ;
11+ use tests \fixtures \WpnSubscriptionFixture ;
1012
11- class MyTest extends \Codeception \Test \Unit
13+ class PusherTest extends \Codeception \Test \Unit
1214{
1315 use \Codeception \AssertThrows;
1416
@@ -24,29 +26,45 @@ protected function _before()
2426 $ this ->tester ->haveFixtures ([
2527 'app ' => [
2628 'class ' => WpnAppFixture::class,
27- 'dataFile ' => codecept_data_dir () . 'wpn_app.php ' ,
2829 ],
2930 'campaign ' => [
3031 'class ' => WpnCampaignFixture::class,
3132 ],
33+ 'subscription ' => [
34+ 'class ' => WpnSubscriptionFixture::class,
35+ ],
3236 ]);
3337
34- $ module = Module:: getInstance ();
35- $ this -> pusher = $ module -> get ( ' pusher ' );
38+ $ stub = $ this -> make (WebPush::class, [
39+ ' queueNotification ' => function () {
3640
37- }
41+ },
42+ 'flush ' => function () {
43+ return [1 ];
44+ }
45+ ]);
46+ \Yii::$ container ->set (WebPush::class, $ stub );
3847
39- protected function _after ()
40- {
48+
49+ $ module = Module::getInstance ();
50+ $ this ->pusher = $ module ->get ('pusher ' );
4151
4252 }
4353
4454 // tests
4555 public function testRefusingDisabledApplication ()
4656 {
47- $ invalidApplication = $ this ->tester ->grabFixture ('campaign ' , 1 );
48- $ this ->assertThrows (InvalidApplication::class, function () use ($ invalidApplication ) {
49- $ this ->pusher ->sendPush ($ invalidApplication );
57+ $ campaign = $ this ->tester ->grabFixture ('campaign ' , 1 );
58+ $ this ->assertThrows (InvalidApplication::class, function () use ($ campaign ) {
59+ $ this ->pusher ->sendPush ($ campaign );
5060 });
5161 }
62+
63+
64+ public function testMock ()
65+ {
66+ $ campaign = $ this ->tester ->grabFixture ('campaign ' , 0 );
67+
68+ $ this ->pusher ->sendPush ($ campaign );
69+ }
5270}
0 commit comments