Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ReSignUpResponseResolverTest.php
Go to the documentation of this file.
1 <?php
7 
13 
17 class ReSignUpResponseResolverTest extends \PHPUnit\Framework\TestCase
18 {
22  private $otpResponseResolver;
23 
27  private $updateResponseResolver;
28 
32  private $converter;
33 
37  private $notifyDataChangedResponseResolver;
38 
42  private $flagManager;
43 
47  protected function setUp()
48  {
50  $this->otpResponseResolver = $objectManager->get(
51  'OtpResponseResolver'
52  );
53  $this->updateResponseResolver = $objectManager->get(
54  'UpdateResponseResolver'
55  );
56  $this->notifyDataChangedResponseResolver = $objectManager->get(
57  'NotifyDataChangedResponseResolver'
58  );
59  $this->converter = $objectManager->get(ConverterInterface::class);
60  $this->flagManager = $objectManager->get(FlagManager::class);
61  }
62 
67  public function testReSignUpOnOtp()
68  {
69  $body = $this->converter->toBody(['test' => '42']);
70  $retryResponse = new \Zend_Http_Response(401, [$this->converter->getContentTypeHeader()], $body);
71  $this->otpResponseResolver->getResult($retryResponse);
72  $this->assertCronWasSet();
73  }
74 
79  public function testReSignOnOtpWasNotCalled()
80  {
81  $body = $this->converter->toBody(['test' => '42']);
82  $successResponse = new \Zend_Http_Response(201, [$this->converter->getContentTypeHeader()], $body);
83  $this->otpResponseResolver->getResult($successResponse);
84  $this->assertCronWasNotSet();
85  }
86 
92  {
93  $body = $this->converter->toBody(['test' => '42']);
94  $retryResponse = new \Zend_Http_Response(401, [$this->converter->getContentTypeHeader()], $body);
95  $this->updateResponseResolver->getResult($retryResponse);
96  $this->assertCronWasSet();
97  }
98 
104  {
105  $body = $this->converter->toBody(['test' => '42']);
106  $successResponse = new \Zend_Http_Response(201, [$this->converter->getContentTypeHeader()], $body);
107  $this->updateResponseResolver->getResult($successResponse);
108  $this->assertCronWasNotSet();
109  }
110 
116  {
117  $this->flagManager
118  ->saveFlag(
120  'https://previous.example.com/'
121  );
122  $body = $this->converter->toBody(['test' => '42']);
123  $retryResponse = new \Zend_Http_Response(401, [$this->converter->getContentTypeHeader()], $body);
124  $this->notifyDataChangedResponseResolver->getResult($retryResponse);
125  $this->assertCronWasNotSet();
126  }
127 
131  private function getSubscribeSchedule()
132  {
137  $scopeConfig = $objectManager->get(ScopeConfigInterface::class);
138 
139  return $scopeConfig->getValue(
142  0
143  );
144  }
145 
149  private function getAttemptFlag()
150  {
155  $flagManager = $objectManager->get(FlagManager::class);
156 
157  return $flagManager->getFlagData(SubscriptionHandler::ATTEMPTS_REVERSE_COUNTER_FLAG_CODE);
158  }
159 
163  private function assertCronWasSet()
164  {
165  $this->assertEquals('0 * * * *', $this->getSubscribeSchedule());
166  $this->assertGreaterThan(1, $this->getAttemptFlag());
167  }
168 
172  private function assertCronWasNotSet()
173  {
174  $this->assertNull($this->getSubscribeSchedule());
175  $this->assertNull($this->getAttemptFlag());
176  }
177 }
$objectManager
Definition: bootstrap.php:17