Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DefinitionAggregatorTest.php
Go to the documentation of this file.
1 <?php
7 
12 
18 class DefinitionAggregatorTest extends \PHPUnit\Framework\TestCase
19 {
23  private $definitonAggregator;
24 
28  private $objectManager;
29 
33  private $definitonProcessors;
34 
35  protected function setUp()
36  {
37  $this->objectManager = new ObjectManager($this);
38  $intDefProcessor = $this->getMockBuilder(DbDefinitionProcessorInterface::class)
39  ->disableOriginalConstructor()
40  ->setMethods([])
41  ->getMock();
42  $varcharDefProcessor = $this->getMockBuilder(DbDefinitionProcessorInterface::class)
43  ->disableOriginalConstructor()
44  ->setMethods([])
45  ->getMock();
46 
47  $this->definitonProcessors = [
48  'int' => $intDefProcessor,
49  'varchar' => $varcharDefProcessor,
50  ];
51  $this->definitonAggregator = $this->objectManager->getObject(
52  DefinitionAggregator::class,
53  [
54  'definitionProcessors' => $this->definitonProcessors
55  ]
56  );
57  }
58 
63  public function testToDefinition()
64  {
66  $columnInt = $this->getMockBuilder(ElementInterface::class)
67  ->disableOriginalConstructor()
68  ->getMock();
70  $columnVarchar = $this->getMockBuilder(ElementInterface::class)
71  ->disableOriginalConstructor()
72  ->getMock();
74  $columnText = $this->getMockBuilder(ElementInterface::class)
75  ->disableOriginalConstructor()
76  ->getMock();
77  $columnInt->expects($this->any())->method('getType')->willReturn('int');
78  $columnVarchar->expects($this->any())->method('getType')->willReturn('varchar');
79  $columnText->expects($this->any())->method('getType')->willReturn('text');
80  $this->definitonProcessors['int']->expects($this->once())->method('toDefinition');
81  $this->definitonProcessors['varchar']->expects($this->once())->method('toDefinition');
82  $this->definitonAggregator->toDefinition($columnInt);
83  $this->definitonAggregator->toDefinition($columnVarchar);
84  $this->definitonAggregator->toDefinition($columnText);
85  }
86 
91  public function testFromDefinition()
92  {
93  $data = [
94  'col_int' => [
95  'type' => 'int'
96  ],
97  'col_varchar' => [
98  'type' => 'varchar'
99  ],
100  'col_text' => [
101  'type' => 'text'
102  ],
103  ];
104  $this->definitonProcessors['int']->expects($this->once())->method('fromDefinition');
105  $this->definitonProcessors['varchar']->expects($this->once())->method('fromDefinition');
106  foreach ($data as $colData) {
107  $this->definitonAggregator->fromDefinition($colData);
108  }
109  }
110 }