Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
StatementAggregatorTest.php
Go to the documentation of this file.
1 <?php
8 
13 
19 class StatementAggregatorTest extends \PHPUnit\Framework\TestCase
20 {
24  private $model;
25 
27  private $objectManagerHelper;
28 
29  protected function setUp()
30  {
31  $this->objectManagerHelper = new ObjectManagerHelper($this);
32  $this->model = new StatementAggregator();
33  }
34 
35  public function testAddStatementsInOneBank()
36  {
37  $statementOne = $this->getMockBuilder(Statement::class)
38  ->disableOriginalConstructor()
39  ->getMock();
40  $statementTwo = $this->getMockBuilder(Statement::class)
41  ->disableOriginalConstructor()
42  ->getMock();
43  $statementThree = $this->getMockBuilder(Statement::class)
44  ->disableOriginalConstructor()
45  ->getMock();
46  $statementsBank = [$statementOne, $statementTwo, $statementThree];
47  $statementOne->expects(self::exactly(2))
48  ->method('getTableName')
49  ->willReturn('first_table');
50  $statementTwo->expects(self::exactly(2))
51  ->method('getTableName')
52  ->willReturn('first_table');
53  $statementThree->expects(self::exactly(2))
54  ->method('getTableName')
55  ->willReturn('first_table');
56  $this->model->addStatements($statementsBank);
57  self::assertEquals(
58  [$statementsBank],
59  $this->model->getStatementsBank()
60  );
61  }
62 
64  {
65  $statementOne = $this->getMockBuilder(Statement::class)
66  ->disableOriginalConstructor()
67  ->getMock();
68  $statementTwo = $this->getMockBuilder(Statement::class)
69  ->disableOriginalConstructor()
70  ->getMock();
71  $statementThree = $this->getMockBuilder(Statement::class)
72  ->disableOriginalConstructor()
73  ->getMock();
74  $statementOne->expects(self::exactly(2))
75  ->method('getTableName')
76  ->willReturn('first_table');
77  $statementTwo->expects(self::exactly(1))
78  ->method('getTableName')
79  ->willReturn('second_table');
80  $statementThree->expects(self::exactly(1))
81  ->method('getTableName')
82  ->willReturn('first_table');
83  $this->model->addStatements([$statementOne, $statementTwo, $statementThree]);
84  self::assertEquals(
85  [[$statementOne, $statementThree], [$statementTwo]],
86  $this->model->getStatementsBank()
87  );
88  }
89 
91  {
92  $statementOne = $this->getMockBuilder(Statement::class)
93  ->disableOriginalConstructor()
94  ->getMock();
95  $statementTwo = $this->getMockBuilder(Statement::class)
96  ->disableOriginalConstructor()
97  ->getMock();
98  $statementThree = $this->getMockBuilder(Statement::class)
99  ->disableOriginalConstructor()
100  ->getMock();
101  $statementOne->expects(self::exactly(2))
102  ->method('getResource')
103  ->willReturn('non_default');
104  $this->model->addStatements([$statementOne, $statementTwo, $statementThree]);
105  self::assertEquals(
106  [[$statementOne], [$statementTwo, $statementThree]],
107  $this->model->getStatementsBank()
108  );
109  }
110 
112  {
113  $statementOne = $this->getMockBuilder(Statement::class)
114  ->disableOriginalConstructor()
115  ->getMock();
116  $statementTwo = $this->getMockBuilder(Statement::class)
117  ->disableOriginalConstructor()
118  ->getMock();
119  $statementThree = $this->getMockBuilder(Statement::class)
120  ->disableOriginalConstructor()
121  ->getMock();
122  $statementThree->expects(self::exactly(0))
123  ->method('getTriggers')
124  ->willReturn(
125  [
126  function () {
127  }
128  ]
129  );
130  $this->model->addStatements([$statementOne, $statementTwo, $statementThree]);
131  self::assertEquals(
132  [[$statementOne, $statementTwo, $statementThree]],
133  $this->model->getStatementsBank()
134  );
135  }
136 
138  {
139  $statementOne = $this->getMockBuilder(Statement::class)
140  ->disableOriginalConstructor()
141  ->getMock();
142  $statementTwo = $this->getMockBuilder(Statement::class)
143  ->disableOriginalConstructor()
144  ->getMock();
145  $statementThree = $this->getMockBuilder(Statement::class)
146  ->disableOriginalConstructor()
147  ->getMock();
148  $statementOne->expects(self::exactly(2))
149  ->method('getTriggers')
150  ->willReturn(
151  [
152  function () {
153  }
154  ]
155  );
156  $this->model->addStatements([$statementOne, $statementTwo, $statementThree]);
157  self::assertEquals(
158  [[$statementOne], [$statementTwo, $statementThree]],
159  $this->model->getStatementsBank()
160  );
161  }
162 
163  public function testAddReferenceStatements()
164  {
165  $statementOne = $this->getMockBuilder(ReferenceStatement::class)
166  ->disableOriginalConstructor()
167  ->getMock();
168  $statementTwo = $this->getMockBuilder(Statement::class)
169  ->disableOriginalConstructor()
170  ->getMock();
171  $statementThree = $this->getMockBuilder(ReferenceStatement::class)
172  ->disableOriginalConstructor()
173  ->getMock();
174  $statementThree->expects(self::exactly(1))
175  ->method('getName')
176  ->willReturn('some_foreign_key');
177  $statementOne->expects(self::exactly(1))
178  ->method('getName')
179  ->willReturn('some_foreign_key');
180  $this->model->addStatements([$statementOne, $statementTwo, $statementThree]);
181  self::assertEquals(
182  [[$statementOne, $statementTwo], [$statementThree]],
183  $this->model->getStatementsBank()
184  );
185  }
186 }