15 use Psr\Log\LoggerInterface;
24 private $notifyDataChangedCommand;
29 private $analyticsTokenMock;
34 private $httpClientMock;
48 $this->analyticsTokenMock = $this->getMockBuilder(AnalyticsToken::class)
49 ->disableOriginalConstructor()
52 $this->httpClientMock = $this->getMockBuilder(ClientInterface::class)
53 ->disableOriginalConstructor()
56 $this->configMock = $this->getMockBuilder(ScopeConfigInterface::class)
57 ->disableOriginalConstructor()
60 $this->loggerMock = $this->getMockBuilder(LoggerInterface::class)
61 ->disableOriginalConstructor()
63 $successHandler = $this->getMockBuilder(\
Magento\Analytics\Model\
Connector\Http\ResponseHandlerInterface::class)
64 ->getMockForAbstractClass();
65 $successHandler->method(
'handleResponse')
67 $serializerMock = $this->getMockBuilder(Json::class)
68 ->disableOriginalConstructor()
70 $serializerMock->expects($this->any())
71 ->method(
'unserialize')
72 ->willReturn([
'unserialized data']);
75 NotifyDataChangedCommand::class,
77 'analyticsToken' => $this->analyticsTokenMock,
78 'httpClient' => $this->httpClientMock,
79 'config' => $this->configMock,
81 ResponseResolver::class,
85 [
'serializer' => $serializerMock]
87 'responseHandlers' => [201 => $successHandler]
90 'logger' => $this->loggerMock
97 $configVal =
"Config val";
99 $this->analyticsTokenMock->expects($this->once())
100 ->method(
'isTokenExist')
102 $this->configMock->expects($this->any())
104 ->willReturn($configVal);
105 $this->analyticsTokenMock->expects($this->once())
108 $this->httpClientMock->expects($this->once())
113 [
'access-token' =>
$token,
'url' => $configVal]
115 $this->assertTrue($this->notifyDataChangedCommand->execute());
120 $this->analyticsTokenMock->expects($this->once())
121 ->method(
'isTokenExist')
123 $this->httpClientMock->expects($this->never())
125 $this->assertFalse($this->notifyDataChangedCommand->execute());
testExecuteWithoutToken()