Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AggregatedFieldDataConverterTest.php
Go to the documentation of this file.
1 <?php
8 
15 
16 class AggregatedFieldDataConverterTest extends \PHPUnit\Framework\TestCase
17 {
18  public function testConvert()
19  {
20  $connection = $this->getMockBuilder(AdapterInterface::class)->getMock();
21  $queryModifier = $this->getMockBuilder(QueryModifierInterface::class)->getMock();
22  $fields = [
23  new FieldToConvert(
24  'ClassOne',
25  'table_1',
26  'id_1',
27  'field_1'
28  ),
29  new FieldToConvert(
30  'ClassTwo',
31  'table_2',
32  'id_2',
33  'field_2',
34  $queryModifier
35  ),
36  ];
37  $fieldConverterOne = $this->getMockBuilder(FieldDataConverter::class)
38  ->disableOriginalConstructor()
39  ->getMock();
40  $fieldConverterTwo = clone $fieldConverterOne;
41  $fieldConverterFactory = $this->createFieldConverterFactory(
42  [
43  ['ClassOne', $fieldConverterOne],
44  ['ClassTwo', $fieldConverterTwo],
45  ]
46  );
47 
48  $this->assertCallsDelegation($connection, $fieldConverterOne, $fieldConverterTwo, $queryModifier);
49  $object = new AggregatedFieldDataConverter($fieldConverterFactory);
50  $object->convert($fields, $connection);
51  }
52 
57  private function createFieldConverterFactory(array $returnValuesMap)
58  {
59  $fieldConverterFactory = $this->getMockBuilder(FieldDataConverterFactory::class)
60  ->disableOriginalConstructor()
61  ->getMock();
62  $fieldConverterFactory->expects($this->any())
63  ->method('create')
64  ->willReturnMap($returnValuesMap);
65  return $fieldConverterFactory;
66  }
67 
76  private function assertCallsDelegation(
78  \PHPUnit_Framework_MockObject_MockObject $fieldConverterOne,
79  \PHPUnit_Framework_MockObject_MockObject $fieldConverterTwo,
80  $queryModifier
81  ) {
82  $fieldConverterOne->expects($this->once())
83  ->method('convert')
84  ->with($connection, 'table_1', 'id_1', 'field_1', null);
85  $fieldConverterTwo->expects($this->once())
86  ->method('convert')
87  ->with($connection, 'table_2', 'id_2', 'field_2', $queryModifier);
88  }
89 }
$fields
Definition: details.phtml:14
$connection
Definition: bulk.php:13