public function testTicket_get_list() { $simpleResultArr = array('list' => array(array('id' => 1))); $paginatorMock = $this->getMockBuilder('\\Box_Pagination')->disableOriginalConstructor()->getMock(); $paginatorMock->expects($this->atLeastOnce())->method('getAdvancedResultSet')->will($this->returnValue($simpleResultArr)); $serviceMock = $this->getMockBuilder('\\Box\\Mod\\Support\\Service')->setMethods(array('getSearchQuery', 'toApiArray'))->getMock(); $serviceMock->expects($this->atLeastOnce())->method('getSearchQuery')->will($this->returnValue(array('query', array()))); $serviceMock->expects($this->atLeastOnce())->method('toApiArray')->will($this->returnValue(array())); $model = new \Model_SupportTicket(); $model->loadBean(new \RedBeanPHP\OODBBean()); $dbMock = $this->getMockBuilder('\\Box_Database')->getMock(); $dbMock->expects($this->atLeastOnce())->method('getExistingModelById')->will($this->returnValue($model)); $di = new \Box_Di(); $di['pager'] = $paginatorMock; $di['db'] = $dbMock; $di['array_get'] = $di->protect(function (array $array, $key, $default = null) use($di) { return isset($array[$key]) ? $array[$key] : $default; }); $this->clientApi->setDi($di); $client = new \Model_Client(); $client->loadBean(new \RedBeanPHP\OODBBean()); $client->id = rand(1, 100); $this->clientApi->setService($serviceMock); $this->clientApi->setIdentity($client); $data = array(); $result = $this->clientApi->ticket_get_list($data); $this->assertInternalType('array', $result); }
public function testCanClientSubmitNewTicketProvider() { $ticket = new \Model_SupportTicket(); $ticket->loadBean(new \RedBeanPHP\OODBBean()); $ticket->client_id = 5; $ticket->created_at = date('Y-m-d H:i:s'); $ticket2 = new \Model_SupportTicket(); $ticket2->loadBean(new \RedBeanPHP\OODBBean()); $ticket2->client_id = 5; $ticket2->created_at = date('Y-m-d H:i:s', strtotime("-2 days")); return array(array($ticket, 24, false), array(null, 24, true), array($ticket2, 24, true)); }
public function testonAfterClientOpenTicket_mod_support_helpdesk_ticket_open() { $di = new \Box_Di(); $ticketModel = new \Model_SupportTicket(); $ticketModel->loadBean(new \RedBeanPHP\OODBBean()); $supportServiceMock = $this->getMockBuilder('\\Box\\Mod\\Support\\Service')->getMock(); $supportServiceMock->expects($this->atLeastOnce())->method('getTicketById')->will($this->returnValue($ticketModel)); $supportTicketArray = array(); $supportServiceMock->expects($this->atLeastOnce())->method('toApiArray')->willReturn($supportTicketArray); $helpdeskModel = new \Model_SupportHelpdesk(); $helpdeskModel->loadBean(new \RedBeanPHP\OODBBean()); $helpdeskModel->email = '*****@*****.**'; $emailServiceMock = $this->getMockBuilder('\\Box\\Mod\\Email\\Service')->getMock(); $emailConfig = array('to' => $helpdeskModel->email, 'code' => 'mod_support_helpdesk_ticket_open', 'ticket' => $supportTicketArray); $emailServiceMock->expects($this->once())->method('sendTemplate')->with($emailConfig)->willReturn(true); $di['mod_service'] = $di->protect(function ($name) use($supportServiceMock, $emailServiceMock) { if ($name == 'support') { return $supportServiceMock; } if ($name == 'email') { return $emailServiceMock; } }); $dbMock = $this->getMockBuilder('\\Box_Database')->getMock(); $dbMock->expects($this->atLeastOnce())->method('load')->willReturn($helpdeskModel); $di['db'] = $dbMock; $di['loggedin_admin'] = new \Model_Admin(); $eventMock = $this->getMockBuilder('\\Box_Event')->disableOriginalConstructor()->getMock(); $eventMock->expects($this->atLeastOnce())->method('getDi')->willReturn($di); $eventMock->expects($this->atLeastOnce())->method('getparameters'); $service = new \Box\Mod\Staff\Service(); $service->onAfterClientOpenTicket($eventMock); }
public function testBatch_ticket_auto_closeNotClosed() { $ticket = new \Model_SupportTicket(); $ticket->loadBean(new \RedBeanPHP\OODBBean()); $ticket->id = rand(1, 100); $serviceMock = $this->getMockBuilder('\\Box\\Mod\\Support\\Service')->setMethods(array('getExpired', 'autoClose'))->getMock(); $serviceMock->expects($this->atLeastOnce())->method('getExpired')->will($this->returnValue(array(array('id' => 1), array('id' => 2)))); $serviceMock->expects($this->atLeastOnce())->method('autoClose')->will($this->returnValue(null)); $dbMock = $this->getMockBuilder('\\Box_Database')->getMock(); $dbMock->expects($this->atLeastOnce())->method('getExistingModelById')->will($this->returnValue($ticket)); $this->adminApi->setService($serviceMock); $di = new \Box_Di(); $di['logger'] = $this->getMockBuilder('Box_Log')->getMock(); $di['db'] = $dbMock; $this->adminApi->setDi($di); $result = $this->adminApi->batch_ticket_auto_close(array()); $this->assertTrue($result); }
public function testonAfterClientOpenTicket_PaidSupportDisabledForHelpdesk() { $di = new \Box_Di(); $supportTicketModel = new \Model_SupportTicket(); $supportTicketModel->loadBean(new \RedBeanPHP\OODBBean()); $clientModel = new \Model_Client(); $clientModel->loadBean(new \RedBeanPHP\OODBBean()); $dbMock = $this->getMockBuilder('\\Box_Database')->getMock(); $dbMock->expects($this->atLeastOnce())->method('load')->withConsecutive(array('SupportTicket'), array('Client'))->willReturnOnConsecutiveCalls($supportTicketModel, $clientModel); $di['db'] = $dbMock; $paidSupportMock = $this->getMockBuilder('\\Box\\Mod\\Paidsupport\\Service')->getMock(); $paidSupportMock->expects($this->atLeastOnce())->method('hasHelpdeskPaidSupport')->willReturn(false); $paidSupportMock->expects($this->never())->method('enoughInBalanceToOpenTicket')->with($clientModel); $di['mod_service'] = $di->protect(function ($serviceName, $sub = '') use($paidSupportMock) { if ($serviceName == 'Paidsupport') { return $paidSupportMock; } }); $params = array('id' => 1, 'support_helpdesk_id' => 1); $boxEventMock = $this->getMockBuilder('\\Box_Event')->disableOriginalConstructor()->getMock(); $boxEventMock->expects($this->atLeastOnce())->method('getDi')->willReturn($di); $boxEventMock->expects($this->atLeastOnce())->method('getParameters')->willReturn($params); $result = $this->service->onAfterClientOpenTicket($boxEventMock); $this->assertTrue($result); }