31 private $iteratorMock;
36 private $statementMock;
41 private $connectionMock;
46 private $queryFactoryMock;
51 private $objectManagerHelper;
56 private $connectionFactoryMock;
61 private $iteratorFactoryMock;
68 $this->selectMock = $this->getMockBuilder(
69 \
Magento\Framework\DB\Select::class
71 ->disableOriginalConstructor()
74 $this->queryMock = $this->getMockBuilder(
75 \
Magento\Analytics\ReportXml\Query::class
77 ->disableOriginalConstructor()
79 $this->queryMock->expects($this->any())
81 ->willReturn($this->selectMock);
83 $this->iteratorMock = $this->getMockBuilder(
84 \IteratorIterator::class
86 ->disableOriginalConstructor()
89 $this->statementMock = $this->getMockBuilder(
90 \
Magento\Framework\DB\Statement\Pdo\Mysql::class
92 ->disableOriginalConstructor()
94 $this->statementMock->expects($this->any())
95 ->method(
'getIterator')
96 ->willReturn($this->iteratorMock);
98 $this->connectionMock = $this->getMockBuilder(
99 \
Magento\Framework\DB\Adapter\AdapterInterface::class
101 ->disableOriginalConstructor()
104 $this->queryFactoryMock = $this->getMockBuilder(
105 \
Magento\Analytics\ReportXml\QueryFactory::class
107 ->disableOriginalConstructor()
110 $this->iteratorFactoryMock = $this->getMockBuilder(
111 \
Magento\Analytics\ReportXml\IteratorFactory::class
113 ->disableOriginalConstructor()
115 $this->iteratorMock = $this->getMockBuilder(
116 \IteratorIterator::class
118 ->disableOriginalConstructor()
120 $this->objectManagerHelper =
121 new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
123 $this->connectionFactoryMock = $this->getMockBuilder(
124 \
Magento\Analytics\ReportXml\ConnectionFactory::class
126 ->disableOriginalConstructor()
129 $this->subject = $this->objectManagerHelper->getObject(
130 \
Magento\Analytics\ReportXml\ReportProvider::class,
132 'queryFactory' => $this->queryFactoryMock,
133 'connectionFactory' => $this->connectionFactoryMock,
134 'iteratorFactory' => $this->iteratorFactoryMock
144 $reportName =
'test_report';
145 $connectionName =
'sales';
147 $this->queryFactoryMock->expects($this->once())
150 ->willReturn($this->queryMock);
152 $this->connectionFactoryMock->expects($this->once())
153 ->method(
'getConnection')
154 ->with($connectionName)
155 ->willReturn($this->connectionMock);
157 $this->queryMock->expects($this->once())
158 ->method(
'getConnectionName')
159 ->willReturn($connectionName);
161 $this->queryMock->expects($this->once())
162 ->method(
'getConfig')
165 'connection' => $connectionName
169 $this->connectionMock->expects($this->once())
171 ->with($this->selectMock)
172 ->willReturn($this->statementMock);
174 $this->iteratorFactoryMock->expects($this->once())
176 ->with($this->statementMock,
null)
177 ->willReturn($this->iteratorMock);
178 $this->assertEquals($this->iteratorMock, $this->subject->getReport($reportName));