33 private $filesystemMock;
38 private $temporaryFileMock;
43 private $publisherMock;
48 private $assetRepositoryMock;
53 private $relatedAssetMock;
58 private $importGeneratorMock;
63 private $localAssetMock;
68 private $scopeConfigMock;
77 $this->filesystemMock = $this->getMockBuilder(Filesystem::class)
78 ->disableOriginalConstructor()
80 $this->temporaryFileMock = $this->getMockBuilder(Temporary::class)
81 ->disableOriginalConstructor()
83 $this->publisherMock = $this->getMockBuilder(Publisher::class)
84 ->disableOriginalConstructor()
86 $this->assetRepositoryMock = $this->getMockBuilder(Repository::class)
87 ->disableOriginalConstructor()
89 $this->relatedAssetMock = $this->getMockBuilder(File::class)
90 ->disableOriginalConstructor()
92 $this->importGeneratorMock = $this->getMockBuilder(Import::class)
93 ->disableOriginalConstructor()
95 $this->localAssetMock = $this->getMockBuilder(LocalInterface::class)
96 ->disableOriginalConstructor()
98 $this->scopeConfigMock = $this->getMockBuilder(ScopeConfigInterface::class)
99 ->getMockForAbstractClass();
100 $this->stateMock = $this->getMockBuilder(State::class)
101 ->disableOriginalConstructor()
104 $this->model = (
new ObjectManager($this))->getObject(PublicationDecorator::class, [
105 'assetRepository' => $this->assetRepositoryMock,
106 'temporaryFile' => $this->temporaryFileMock,
107 'assetPublisher' => $this->publisherMock,
108 'scopeConfig' => $this->scopeConfigMock,
109 'state' => $this->stateMock,
110 'hasRelatedPublishing' =>
true,
119 $relatedFileId =
'file_id';
120 $relatedFiles = [[$relatedFileId, $this->localAssetMock]];
122 $this->importGeneratorMock->expects($this->any())
123 ->method(
'getRelatedFiles')
124 ->willReturnOnConsecutiveCalls($relatedFiles, []);
125 $this->assetRepositoryMock->expects($this->any())
126 ->method(
'createRelated')
127 ->willReturn($this->relatedAssetMock);
128 $this->publisherMock->expects($this->once())
130 ->with($this->relatedAssetMock);
132 $this->model->generate($this->importGeneratorMock);
testGenerateRelatedFile()