9 use Magento\Analytics\Model\FileInfoFactory;
19 private $flagManagerMock;
24 private $fileInfoFactoryMock;
29 private $fileInfoMock;
34 private $objectManagerHelper;
39 private $fileInfoManager;
44 private $flagCode =
'analytics_file_info';
49 private $encodedParameters = [
50 'initializationVector' 58 $this->flagManagerMock = $this->getMockBuilder(FlagManager::class)
59 ->disableOriginalConstructor()
62 $this->fileInfoFactoryMock = $this->getMockBuilder(FileInfoFactory::class)
63 ->setMethods([
'create'])
64 ->disableOriginalConstructor()
67 $this->fileInfoMock = $this->getMockBuilder(FileInfo::class)
68 ->disableOriginalConstructor()
71 $this->objectManagerHelper =
new ObjectManagerHelper($this);
73 $this->fileInfoManager = $this->objectManagerHelper->getObject(
74 FileInfoManager::class,
76 'flagManager' => $this->flagManagerMock,
77 'fileInfoFactory' => $this->fileInfoFactoryMock,
78 'flagCode' => $this->flagCode,
79 'encodedParameters' => $this->encodedParameters,
89 $path =
'path/to/file';
90 $initializationVector = openssl_random_pseudo_bytes(16);
93 'initializationVector' => $initializationVector,
97 ->expects($this->once())
102 ->expects($this->once())
103 ->method(
'getInitializationVector')
105 ->willReturn($initializationVector);
107 foreach ($this->encodedParameters as $encodedParameter) {
108 $parameters[$encodedParameter] = base64_encode($parameters[$encodedParameter]);
110 $this->flagManagerMock
111 ->expects($this->once())
113 ->with($this->flagCode, $parameters);
115 $this->assertTrue($this->fileInfoManager->save($this->fileInfoMock));
127 ->expects($this->once())
132 ->expects($this->once())
133 ->method(
'getInitializationVector')
135 ->willReturn($initializationVector);
137 $this->fileInfoManager->save($this->fileInfoMock);
146 'Empty FileInfo' => [
null,
null],
147 'FileInfo without IV' => [
'path/to/file',
null],
157 $this->flagManagerMock
158 ->expects($this->once())
159 ->method(
'getFlagData')
160 ->with($this->flagCode)
161 ->willReturn($parameters);
163 $processedParameters = $parameters ?: [];
164 $encodedParameters = array_intersect($this->encodedParameters, array_keys($processedParameters));
165 foreach ($encodedParameters as $encodedParameter) {
166 $processedParameters[$encodedParameter] = base64_decode($processedParameters[$encodedParameter]);
169 $this->fileInfoFactoryMock
170 ->expects($this->once())
172 ->with($processedParameters)
173 ->willReturn($this->fileInfoMock);
175 $this->assertSame($this->fileInfoMock, $this->fileInfoManager->load());
184 'Empty flag data' => [
null],
185 'Correct flag data' => [[
186 'path' =>
'path/to/file',
187 'initializationVector' =>
'xUJjl54MVke+FvMFSBpRSA==',
saveWithLocalizedExceptionDataProvider()
testSaveWithLocalizedException($path, $initializationVector)