Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SubscriptionHandlerTest.php
Go to the documentation of this file.
1 <?php
8 
15 
16 class SubscriptionHandlerTest extends \PHPUnit\Framework\TestCase
17 {
21  private $flagManagerMock;
22 
26  private $configWriterMock;
27 
31  private $tokenMock;
32 
36  private $objectManagerHelper;
37 
41  private $attemptsInitValue = 10;
42 
46  private $subscriptionHandler;
47 
48  protected function setUp()
49  {
50  $this->flagManagerMock = $this->getMockBuilder(FlagManager::class)
51  ->disableOriginalConstructor()
52  ->getMock();
53 
54  $this->configWriterMock = $this->getMockBuilder(WriterInterface::class)
55  ->disableOriginalConstructor()
56  ->getMock();
57 
58  $this->tokenMock = $this->getMockBuilder(AnalyticsToken::class)
59  ->disableOriginalConstructor()
60  ->getMock();
61 
62  $this->objectManagerHelper = new ObjectManagerHelper($this);
63 
64  $this->subscriptionHandler = $this->objectManagerHelper->getObject(
65  SubscriptionHandler::class,
66  [
67  'flagManager' => $this->flagManagerMock,
68  'configWriter' => $this->configWriterMock,
69  'attemptsInitValue' => $this->attemptsInitValue,
70  'analyticsToken' => $this->tokenMock,
71  ]
72  );
73  }
74 
75  public function testProcessEnabledTokenExist()
76  {
77  $this->tokenMock
78  ->expects($this->once())
79  ->method('isTokenExist')
80  ->willReturn(true);
81  $this->configWriterMock
82  ->expects($this->never())
83  ->method('save');
84  $this->flagManagerMock
85  ->expects($this->never())
86  ->method('saveFlag');
87  $this->assertTrue(
88  $this->subscriptionHandler->processEnabled()
89  );
90  }
91 
93  {
94  $this->tokenMock
95  ->expects($this->once())
96  ->method('isTokenExist')
97  ->willReturn(false);
98  $this->configWriterMock
99  ->expects($this->once())
100  ->method('save')
101  ->with(SubscriptionHandler::CRON_STRING_PATH, "0 * * * *");
102  $this->flagManagerMock
103  ->expects($this->once())
104  ->method('saveFlag')
105  ->with(SubscriptionHandler::ATTEMPTS_REVERSE_COUNTER_FLAG_CODE, $this->attemptsInitValue)
106  ->willReturn(true);
107  $this->assertTrue(
108  $this->subscriptionHandler->processEnabled()
109  );
110  }
111 
113  {
114  $this->configWriterMock
115  ->expects($this->once())
116  ->method('delete')
118  $this->tokenMock
119  ->expects($this->once())
120  ->method('isTokenExist')
121  ->willReturn(false);
122  $this->flagManagerMock
123  ->expects($this->once())
124  ->method('deleteFlag')
126  ->willReturn(true);
127  $this->assertTrue(
128  $this->subscriptionHandler->processDisabled()
129  );
130  }
131 
133  {
134  $this->configWriterMock
135  ->expects($this->once())
136  ->method('delete')
138  $this->tokenMock
139  ->expects($this->once())
140  ->method('isTokenExist')
141  ->willReturn(true);
142  $this->flagManagerMock
143  ->expects($this->never())
144  ->method('deleteFlag');
145  $this->assertTrue(
146  $this->subscriptionHandler->processDisabled()
147  );
148  }
149 }