Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
BuilderTest.php
Go to the documentation of this file.
1 <?php
7 
12 
16 class BuilderTest extends \PHPUnit\Framework\TestCase
17 {
21  private $downloadFileMock;
22 
26  private $objectCopyServiceMock;
27 
31  private $dataObjectHelperMock;
32 
36  private $service;
37 
41  private $mockComponentFactory;
42 
46  private $sampleMock;
47 
48  protected function setUp()
49  {
50  $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
51  $this->downloadFileMock = $this->getMockBuilder(
52  \Magento\Downloadable\Helper\File::class
53  )->disableOriginalConstructor()->getMock();
54 
55  $this->objectCopyServiceMock = $this->getMockBuilder(
56  \Magento\Framework\DataObject\Copy::class
57  )->disableOriginalConstructor()->getMock();
58 
59  $this->dataObjectHelperMock = $this->getMockBuilder(
60  \Magento\Framework\Api\DataObjectHelper::class
61  )->disableOriginalConstructor()->getMock();
62 
63  $this->mockComponentFactory = $this->getMockBuilder(\Magento\Downloadable\Model\SampleFactory::class)
64  ->disableOriginalConstructor()
65  ->setMethods(['create'])
66  ->getMock();
67 
68  $this->sampleMock = $this->getMockBuilder(SampleInterface::class)
69  ->disableOriginalConstructor()
70  ->getMockForAbstractClass();
71 
72  $this->service = $objectManagerHelper->getObject(
73  Builder::class,
74  [
75  'downloadableFile' => $this->downloadFileMock,
76  'objectCopyService' => $this->objectCopyServiceMock,
77  'dataObjectHelper' => $this->dataObjectHelperMock,
78  'componentFactory' => $this->mockComponentFactory
79  ]
80  );
81  }
82 
83  public function testBuild()
84  {
85  $data = [
86  'file' => 'cXVlIHRhbA==',
87  'type' => 'file'
88  ];
89  $downloadableData = ['sort_order' => 1];
90  $baseTmpPath = 'l/2/e/f/gm';
91  $basePath = 'l/e/f/gm';
92  $fileName = 'cat1.png';
93  $this->objectCopyServiceMock->expects($this->once())->method('getDataFromFieldset')->with(
94  'downloadable_data',
95  'to_sample',
96  $data
97  )->willReturn($downloadableData);
98  $this->dataObjectHelperMock->method('populateWithArray')
99  ->with(
100  $this->sampleMock,
101  array_merge(
102  $data,
104  ),
105  SampleInterface::class
106  )->willReturn($this->sampleMock);
107  $this->sampleMock->expects($this->once())->method('getSampleType')->willReturn(Download::LINK_TYPE_FILE);
108  $sampleModel = $this->getMockBuilder(Sample::class)
109  ->disableOriginalConstructor()
110  ->getMock();
111  $this->mockComponentFactory->expects($this->once())->method('create')->willReturn($sampleModel);
112  $sampleModel->expects($this->once())->method('getBaseTmpPath')->willReturn($baseTmpPath);
113  $sampleModel->expects($this->once())->method('getBasePath')->willReturn($basePath);
114  $this->downloadFileMock->expects($this->once())
115  ->method('moveFileFromTmp')
116  ->withConsecutive(
117  [
118  $baseTmpPath,
119  $basePath,
120  $data['file']
121  ]
122  )->willReturn($fileName);
123  $this->sampleMock->expects($this->once())->method('setSampleFile')->with($fileName);
124  $this->sampleMock->expects($this->once())->method('setSortOrder')->with(1);
125  $this->service->setData($data);
126 
127  $this->service->build($this->sampleMock);
128  }
129 }
$fileName
Definition: translate.phtml:15