Skip to content

Commit 2ac81e8

Browse files
committed
MAGETWO-64630: Create cronjob that executes update command
1 parent ec205a1 commit 2ac81e8

File tree

2 files changed

+236
-0
lines changed

2 files changed

+236
-0
lines changed
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Analytics\Test\Unit\Cron;
7+
8+
use Magento\Analytics\Model\Connector;
9+
use Magento\Analytics\Model\Plugin\BaseUrlConfigPlugin;
10+
use Magento\Framework\App\Config\ReinitableConfigInterface;
11+
use Magento\Framework\App\Config\Storage\WriterInterface;
12+
use Magento\Analytics\Model\FlagManager;
13+
use Magento\Analytics\Cron\Update;
14+
15+
/**
16+
* Class Update
17+
*/
18+
class UpdateTest extends \PHPUnit_Framework_TestCase
19+
{
20+
/**
21+
* @var Connector|\PHPUnit_Framework_MockObject_MockObject
22+
*/
23+
private $connectorMock;
24+
25+
/**
26+
* @var WriterInterface|\PHPUnit_Framework_MockObject_MockObject
27+
*/
28+
private $configWriterMock;
29+
30+
/**
31+
* @var FlagManager|\PHPUnit_Framework_MockObject_MockObject
32+
*/
33+
private $flagManagerMock;
34+
35+
/**
36+
* @var ReinitableConfigInterface|\PHPUnit_Framework_MockObject_MockObject
37+
*/
38+
private $reinitableConfigMock;
39+
40+
/**
41+
* @var Update
42+
*/
43+
private $update;
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->update = new Update(
61+
$this->connectorMock,
62+
$this->configWriterMock,
63+
$this->reinitableConfigMock,
64+
$this->flagManagerMock
65+
);
66+
}
67+
68+
public function testExecute()
69+
{
70+
$this->connectorMock->expects($this->once())
71+
->method('execute')
72+
->with('update')
73+
->willReturn(true);
74+
$this->configWriterMock->expects($this->once())
75+
->method('delete')
76+
->with(BaseUrlConfigPlugin::UPDATE_CRON_STRING_PATH);
77+
$this->flagManagerMock->expects($this->once())
78+
->method('deleteFlag')
79+
->with(BaseUrlConfigPlugin::OLD_BASE_URL_FLAG_CODE);
80+
$this->reinitableConfigMock->expects($this->once())
81+
->method('reinit');
82+
$this->assertTrue($this->update->execute());
83+
}
84+
85+
public function testExecuteUnsuccess()
86+
{
87+
$this->connectorMock->expects($this->once())
88+
->method('execute')
89+
->with('update')
90+
->willReturn(false);
91+
$this->assertFalse($this->update->execute());
92+
}
93+
}
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Analytics\Test\Unit\Model\Connector;
7+
8+
use Magento\Analytics\Model\AnalyticsToken;
9+
use Magento\Analytics\Model\FlagManager;
10+
use Magento\Framework\HTTP\ZendClient;
11+
use Magento\Config\Model\Config;
12+
use Psr\Log\LoggerInterface;
13+
use Magento\Analytics\Model\Plugin\BaseUrlConfigPlugin;
14+
use Magento\Analytics\Model\Connector\UpdateCommand;
15+
use Magento\Analytics\Model\Connector\Http\ClientInterface;
16+
17+
/**
18+
* Class SignUpCommandTest
19+
*/
20+
class UpdateCommandTest extends \PHPUnit_Framework_TestCase
21+
{
22+
/**
23+
* @var UpdateCommand
24+
*/
25+
private $updateCommand;
26+
27+
/**
28+
* @var AnalyticsToken|\PHPUnit_Framework_MockObject_MockObject
29+
*/
30+
private $analyticsTokenMock;
31+
32+
33+
/**
34+
* @var ClientInterface|\PHPUnit_Framework_MockObject_MockObject
35+
*/
36+
private $httpClientMock;
37+
38+
/**
39+
* @var Config|\PHPUnit_Framework_MockObject_MockObject
40+
*/
41+
public $configMock;
42+
43+
/**
44+
* @var LoggerInterface|\PHPUnit_Framework_MockObject_MockObject
45+
*/
46+
private $loggerMock;
47+
48+
/**
49+
* @var LoggerInterface|\PHPUnit_Framework_MockObject_MockObject
50+
*/
51+
private $responseMock;
52+
53+
/**
54+
* @var FlagManager|\PHPUnit_Framework_MockObject_MockObject
55+
*/
56+
private $flagManagerMock;
57+
58+
protected function setUp()
59+
{
60+
$this->analyticsTokenMock = $this->getMockBuilder(AnalyticsToken::class)
61+
->disableOriginalConstructor()
62+
->getMock();
63+
64+
$this->httpClientMock = $this->getMockBuilder(ClientInterface::class)
65+
->disableOriginalConstructor()
66+
->getMock();
67+
68+
$this->configMock = $this->getMockBuilder(Config::class)
69+
->disableOriginalConstructor()
70+
->getMock();
71+
72+
$this->loggerMock = $this->getMockBuilder(LoggerInterface::class)
73+
->disableOriginalConstructor()
74+
->getMock();
75+
76+
$this->flagManagerMock = $this->getMockBuilder(FlagManager::class)
77+
->disableOriginalConstructor()
78+
->getMock();
79+
80+
$this->responseMock = $this->getMockBuilder(\Zend_Http_Response::class)
81+
->disableOriginalConstructor()
82+
->getMock();
83+
84+
$this->updateCommand = new UpdateCommand(
85+
$this->analyticsTokenMock,
86+
$this->httpClientMock,
87+
$this->configMock,
88+
$this->loggerMock,
89+
$this->flagManagerMock
90+
);
91+
}
92+
93+
public function testExecuteSuccess()
94+
{
95+
$url = "old.localhost.com";
96+
$newurl = "new.localhost.com";
97+
$updateUrl = "update.localhost.com";
98+
$configVal = "Config val";
99+
$token = "Secret token!";
100+
$requestJson = sprintf('{"url":"%s","new-url":"%s","access-token":"%s"}', $url, $configVal, $token);
101+
$this->analyticsTokenMock->expects($this->once())
102+
->method('isTokenExist')
103+
->willReturn(true);
104+
105+
$this->configMock->expects($this->any())
106+
->method('getConfigDataValue')
107+
->willReturn($configVal);
108+
109+
$this->flagManagerMock->expects($this->once())
110+
->method('getFlagData')
111+
->with(BaseUrlConfigPlugin::OLD_BASE_URL_FLAG_CODE)
112+
->willReturn($url);
113+
114+
115+
$this->analyticsTokenMock->expects($this->once())
116+
->method('getToken')
117+
->willReturn($token);
118+
119+
$this->httpClientMock->expects($this->once())
120+
->method('request')
121+
->with(
122+
ZendClient::PUT,
123+
$configVal,
124+
$requestJson,
125+
['Content-Type: application/json']
126+
)->willReturn($this->responseMock);
127+
128+
$this->responseMock->expects($this->once())
129+
->method('getStatus')
130+
->willReturn(201);
131+
132+
$this->assertTrue($this->updateCommand->execute());
133+
}
134+
135+
public function testExecuteWithoutToken()
136+
{
137+
$this->analyticsTokenMock->expects($this->once())
138+
->method('isTokenExist')
139+
->willReturn(false);
140+
141+
$this->assertFalse($this->updateCommand->execute());
142+
}
143+
}

0 commit comments

Comments
 (0)