Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
LinkedProductSelectBuilderTest.php
Go to the documentation of this file.
1 <?php
7 
13 
14 class LinkedProductSelectBuilderTest extends \PHPUnit\Framework\TestCase
15 {
19  private $subject;
20 
24  private $baseSelectProcessorMock;
25 
29  private $linkedProductSelectBuilderMock;
30 
31  protected function setUp()
32  {
33  $this->baseSelectProcessorMock = $this->getMockBuilder(BaseSelectProcessorInterface::class)
34  ->disableOriginalConstructor()
35  ->getMockForAbstractClass();
36 
37  $this->linkedProductSelectBuilderMock = $this->getMockBuilder(LinkedProductSelectBuilderInterface::class)
38  ->disableOriginalConstructor()
39  ->getMockForAbstractClass();
40 
41  $this->subject = (new ObjectManager($this))->getObject(
42  LinkedProductSelectBuilder::class,
43  [
44  'baseSelectProcessor' => $this->baseSelectProcessorMock,
45  'linkedProductSelectBuilder' => $this->linkedProductSelectBuilderMock,
46  ]
47  );
48  }
49 
50  public function testBuild()
51  {
52  $productId = 42;
53 
55  $selectMock = $this->getMockBuilder(Select::class)
56  ->disableOriginalConstructor()
57  ->getMock();
58 
59  $expectedResult = [$selectMock];
60 
61  $this->linkedProductSelectBuilderMock->expects($this->any())
62  ->method('build')
63  ->with($productId)
64  ->willReturn($expectedResult);
65 
66  $this->baseSelectProcessorMock->expects($this->once())
67  ->method('process')
68  ->with($selectMock);
69 
70  $this->assertEquals($expectedResult, $this->subject->build($productId));
71  }
72 }