Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SignUpTest.php
Go to the documentation of this file.
1 <?php
7 
14 
18 class SignUpTest extends \PHPUnit\Framework\TestCase
19 {
23  private $connectorMock;
24 
28  private $configWriterMock;
29 
33  private $flagManagerMock;
34 
38  private $reinitableConfigMock;
39 
43  private $signUp;
44 
45  protected function setUp()
46  {
47  $this->connectorMock = $this->getMockBuilder(Connector::class)
48  ->disableOriginalConstructor()
49  ->getMock();
50  $this->configWriterMock = $this->getMockBuilder(WriterInterface::class)
51  ->disableOriginalConstructor()
52  ->getMock();
53  $this->flagManagerMock = $this->getMockBuilder(FlagManager::class)
54  ->disableOriginalConstructor()
55  ->getMock();
56  $this->reinitableConfigMock = $this->getMockBuilder(ReinitableConfigInterface::class)
57  ->disableOriginalConstructor()
58  ->getMock();
59 
60  $this->signUp = new SignUp(
61  $this->connectorMock,
62  $this->configWriterMock,
63  $this->flagManagerMock,
64  $this->reinitableConfigMock
65  );
66  }
67 
68  public function testExecute()
69  {
70  $attemptsCount = 10;
71 
72  $this->flagManagerMock->expects($this->once())
73  ->method('getFlagData')
75  ->willReturn($attemptsCount);
76 
77  $attemptsCount -= 1;
78  $this->flagManagerMock->expects($this->once())
79  ->method('saveFlag')
81  $this->connectorMock->expects($this->once())
82  ->method('execute')
83  ->with('signUp')
84  ->willReturn(true);
85  $this->addDeleteAnalyticsCronExprAsserts();
86  $this->flagManagerMock->expects($this->once())
87  ->method('deleteFlag')
89  $this->assertTrue($this->signUp->execute());
90  }
91 
92  public function testExecuteFlagNotExist()
93  {
94  $this->flagManagerMock->expects($this->once())
95  ->method('getFlagData')
97  ->willReturn(null);
98  $this->addDeleteAnalyticsCronExprAsserts();
99  $this->assertFalse($this->signUp->execute());
100  }
101 
102  public function testExecuteZeroAttempts()
103  {
104  $attemptsCount = 0;
105  $this->flagManagerMock->expects($this->once())
106  ->method('getFlagData')
108  ->willReturn($attemptsCount);
109  $this->addDeleteAnalyticsCronExprAsserts();
110  $this->flagManagerMock->expects($this->once())
111  ->method('deleteFlag')
113  $this->assertFalse($this->signUp->execute());
114  }
115 
121  private function addDeleteAnalyticsCronExprAsserts()
122  {
123  $this->configWriterMock
124  ->expects($this->once())
125  ->method('delete')
127  ->willReturn(true);
128  $this->reinitableConfigMock
129  ->expects($this->once())
130  ->method('reinit')
131  ->willReturnSelf();
132  }
133 }