Issues (3877)

...tUserPasswordResetRequestStrategyPluginTest.php (1 issue)

1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Spryker Marketplace License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerTest\Zed\MerchantUserPasswordResetMail\Communication\UserPasswordReset;
9
10
use Codeception\Test\Unit;
11
use Generated\Shared\Transfer\UserPasswordResetRequestTransfer;
12
use Spryker\Zed\Mail\Business\MailFacadeInterface;
13
use Spryker\Zed\MerchantUserPasswordResetMail\Communication\Plugin\UserPasswordReset\MailMerchantUserPasswordResetRequestStrategyPlugin;
14
use Spryker\Zed\MerchantUserPasswordResetMail\Dependency\Facade\MerchantUserPasswordResetMailToMailFacadeBridge;
15
use Spryker\Zed\MerchantUserPasswordResetMail\Dependency\Facade\MerchantUserPasswordResetMailToStoreFacadeInterface;
16
use Spryker\Zed\MerchantUserPasswordResetMail\MerchantUserPasswordResetMailDependencyProvider;
17
18
/**
19
 * Auto-generated group annotations
20
 *
21
 * @group SprykerTest
22
 * @group Zed
23
 * @group MerchantUserPasswordResetMail
24
 * @group Communication
25
 * @group UserPasswordReset
26
 * @group MailMerchantUserPasswordResetRequestStrategyPluginTest
27
 * Add your own group annotations below this line
28
 */
29
class MailMerchantUserPasswordResetRequestStrategyPluginTest extends Unit
30
{
31
    /**
32
     * @var \SprykerTest\Zed\MerchantUserPasswordResetMail\MerchantUserPasswordResetMailCommunicationTester
33
     */
34
    protected $tester;
35
36
    /**
37
     * @var \PHPUnit\Framework\MockObject\MockObject|\Spryker\Zed\MerchantUserPasswordResetMail\Dependency\Facade\MerchantUserPasswordResetMailToStoreFacadeInterface|null
38
     */
39
    protected ?MerchantUserPasswordResetMailToStoreFacadeInterface $storeFacadeMock;
40
41
    /**
42
     * @return void
43
     */
44
    protected function setUp(): void
45
    {
46
        parent::setUp();
47
48
        $this->storeFacadeMock = $this->createMock(MerchantUserPasswordResetMailToStoreFacadeInterface::class);
49
50
        $this->tester->setDependency(
51
            MerchantUserPasswordResetMailDependencyProvider::FACADE_STORE,
52
            $this->storeFacadeMock,
53
        );
54
    }
55
56
    /**
57
     * @return void
58
     */
59
    public function testMailMerchantUserPasswordResetRequestStrategyPluginCallsMailFacade(): void
60
    {
61
        // Arrange
62
        $mailFacade = $this->createMailFacadeMock();
63
64
        $userTransfer = $this->tester->haveUser();
65
        $userPasswordResetRequestTransfer = (new UserPasswordResetRequestTransfer())
66
            ->setUser($userTransfer)
67
            ->setResetPasswordLink('');
68
        $mailMerchantUserPasswordResetPlugin = new MailMerchantUserPasswordResetRequestStrategyPlugin();
69
70
        // Assert
71
        $mailFacade->expects($this->once())
0 ignored issues
show
The method expects() does not exist on Spryker\Zed\Mail\Business\MailFacadeInterface. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

71
        $mailFacade->/** @scrutinizer ignore-call */ 
72
                     expects($this->once())

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
72
            ->method('handleMail');
73
74
        // Act
75
        $mailMerchantUserPasswordResetPlugin->handleUserPasswordResetRequest($userPasswordResetRequestTransfer);
76
    }
77
78
    /**
79
     * @return void
80
     */
81
    public function testHandleUserPasswordResetRequestCallsStoreFacade(): void
82
    {
83
        // Arrange
84
        $userTransfer = $this->tester->haveUser();
85
        $userPasswordResetRequestTransfer = (new UserPasswordResetRequestTransfer())
86
            ->setUser($userTransfer)
87
            ->setResetPasswordLink('');
88
        $mailMerchantUserPasswordResetPlugin = new MailMerchantUserPasswordResetRequestStrategyPlugin();
89
90
        // Assert
91
        $storeTransfer = $this->storeFacadeMock
92
            ->expects($this->once())
93
            ->method('getCurrentStore');
94
95
        // Act
96
        $mailMerchantUserPasswordResetPlugin->handleUserPasswordResetRequest($userPasswordResetRequestTransfer);
97
    }
98
99
    /**
100
     * @return \Spryker\Zed\Mail\Business\MailFacadeInterface
101
     */
102
    protected function createMailFacadeMock(): MailFacadeInterface
103
    {
104
        /** @var \Spryker\Zed\Mail\Business\MailFacadeInterface $mailFacade */
105
        $mailFacade = $this->getMockBuilder(MailFacadeInterface::class)->getMock();
106
107
        $this->tester->setDependency(
108
            MerchantUserPasswordResetMailDependencyProvider::FACADE_MAIL,
109
            new MerchantUserPasswordResetMailToMailFacadeBridge($mailFacade),
110
        );
111
112
        return $mailFacade;
113
    }
114
}
115