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);
 }
Exemple #5
0
 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);
 }