service= new \Box\Mod\Stats\Service(); } public function testgetDi() { $di = new \Pimple\Container(); $this->service->setDi($di); $getDi = $this->service->getDi(); $this->assertEquals($di, $getDi); } public function testgetOrdersStatuses() { $orderServiceMock = $this->getMockBuilder('\\' . \Box\Mod\Order\Service::class)->getMock(); $orderServiceMock->expects($this->atLeastOnce()) ->method('counter') ->will($this->returnValue(array())); $di = new \Pimple\Container(); $di['mod_service'] = $di->protect(fn() => $orderServiceMock); $this->service->setDi($di); $result = $this->service->getOrdersStatuses(array()); $this->assertIsArray($result); } public function testgetProductSummary() { $data = array(); $dbMock = $this->getMockBuilder('\Box_Database')->getMock(); $dbMock->expects($this->atLeastOnce()) ->method('getAll') ->will($this->returnValue(array())); $di = new \Pimple\Container(); $di['db'] = $dbMock; $this->service->setDi($di); $result = $this->service->getProductSummary($data); $this->assertIsArray($result); } public function testgetSummary() { $pdoStatmentMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoStatmentsMock::class) ->getMock(); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('execute'); $expected = array( 'clients_total' => null, 'clients_today' => null, 'clients_yesterday' => null, 'clients_this_month' => null, 'clients_last_month' => null, 'orders_total' => null, 'orders_today' => null, 'orders_yesterday' => null, 'orders_this_month' => null, 'orders_last_month' => null, 'invoices_total' => null, 'invoices_today' => null, 'invoices_yesterday' => null, 'invoices_this_month' => null, 'invoices_last_month' => null, 'tickets_total' => null, 'tickets_today' => null, 'tickets_yesterday' => null, 'tickets_this_month' => null, 'tickets_last_month' => null, ); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('fetchColumn'); $pdoMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoMock::class)->getMock(); $pdoMock->expects($this->atLeastOnce()) ->method('prepare') ->will($this->returnValue($pdoStatmentMock)); $di = new \Pimple\Container(); $di['pdo'] = $pdoMock; $this->service->setDi($di); $result = $this->service->getSummary(); $this->assertIsArray($result); $this->assertEquals($expected, $result); } public function testgetSummaryIncome() { $pdoStatmentMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoStatmentsMock::class) ->getMock(); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('execute'); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('fetchColumn'); $pdoMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoMock::class)->getMock(); $pdoMock->expects($this->atLeastOnce()) ->method('prepare') ->will($this->returnValue($pdoStatmentMock)); $di = new \Pimple\Container(); $di['pdo'] = $pdoMock; $this->service->setDi($di); $expected = array( 'total' => null, 'today' => null, 'yesterday' => null, 'this_month' => null, 'last_month' => null, ); $result = $this->service->getSummaryIncome(); $this->assertIsArray($result); $this->assertEquals($expected, $result); } public function testgetProductSales() { $pdoStatmentMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoStatmentsMock::class) ->getMock(); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('execute'); $res = array( 'testProduct' => 1, ); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('fetchAll') ->will($this->returnValue($res)); $pdoMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoMock::class)->getMock(); $pdoMock->expects($this->atLeastOnce()) ->method('prepare') ->will($this->returnValue($pdoStatmentMock)); $di = new \Pimple\Container(); $di['pdo'] = $pdoMock; $this->service->setDi($di); $data = array( 'date_from' => 'yesterday', 'date_to' => 'now', ); $result = $this->service->getProductSales($data); $this->assertIsArray($result); } public function testincomeAndRefundStats() { $pdoStatmentMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoStatmentsMock::class) ->getMock(); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('execute'); $res = array( array( 'refund' => 0, 'income' => 0 ) ); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('fetchAll') ->will($this->returnValue($res)); $pdoMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoMock::class)->getMock(); $pdoMock->expects($this->atLeastOnce()) ->method('prepare') ->will($this->returnValue($pdoStatmentMock)); $di = new \Pimple\Container(); $di['pdo'] = $pdoMock; $this->service->setDi($di); $result = $this->service->incomeAndRefundStats(array()); $this->assertIsArray($result); $this->assertEquals($res[0], $result); } public function testgetRefunds() { $pdoStatmentMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoStatmentsMock::class) ->getMock(); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('execute'); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('fetchAll') ->will($this->returnValue(array())); $pdoMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoMock::class)->getMock(); $pdoMock->expects($this->atLeastOnce()) ->method('prepare') ->will($this->returnValue($pdoStatmentMock)); $di = new \Pimple\Container(); $di['pdo'] = $pdoMock; $this->service->setDi($di); $data = array( 'date_from' => 'yesterday', 'date_to' => 'now', ); $result = $this->service->getRefunds($data); $this->assertIsArray($result); } public function testgetIncome() { $pdoStatmentMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoStatmentsMock::class) ->getMock(); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('execute'); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('fetchAll') ->will($this->returnValue(array())); $pdoMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoMock::class)->getMock(); $pdoMock->expects($this->atLeastOnce()) ->method('prepare') ->will($this->returnValue($pdoStatmentMock)); $di = new \Pimple\Container(); $di['pdo'] = $pdoMock; $this->service->setDi($di); $data = array( 'date_from' => 'yesterday', 'date_to' => 'now', ); $result = $this->service->getIncome($data); $this->assertIsArray($result); } public function testgetClientCountries() { $pdoStatmentMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoStatmentsMock::class) ->getMock(); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('execute'); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('fetchAll') ->will($this->returnValue(array())); $pdoMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoMock::class)->getMock(); $pdoMock->expects($this->atLeastOnce()) ->method('prepare') ->will($this->returnValue($pdoStatmentMock)); $di = new \Pimple\Container(); $di['pdo'] = $pdoMock; $this->service->setDi($di); $result = $this->service->getClientCountries(array()); $this->assertIsArray($result); } public function testgetSalesByCountry() { $pdoStatmentMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoStatmentsMock::class) ->getMock(); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('execute'); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('fetchAll') ->will($this->returnValue(array())); $pdoMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoMock::class)->getMock(); $pdoMock->expects($this->atLeastOnce()) ->method('prepare') ->will($this->returnValue($pdoStatmentMock)); $di = new \Pimple\Container(); $di['pdo'] = $pdoMock; $this->service->setDi($di); $result = $this->service->getSalesByCountry(array()); $this->assertIsArray($result); } public function testgetTableStats() { $pdoStatmentMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoStatmentsMock::class) ->getMock(); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('execute'); $pdoStatmentMock->expects($this->atLeastOnce()) ->method('fetchAll') ->will($this->returnValue(array())); $pdoMock = $this->getMockBuilder('\\' . \Box\Mod\Stats\PdoMock::class)->getMock(); $pdoMock->expects($this->atLeastOnce()) ->method('prepare') ->will($this->returnValue($pdoStatmentMock)); $di = new \Pimple\Container(); $di['pdo'] = $pdoMock; $this->service->setDi($di); $data = array( 'date_from' => 'yesterday', 'date_to' => 'now', ); $result = $this->service->getTableStats('TableName', $data); $this->assertIsArray($result); } }