api_admin->support_canned_pairs(); $this->assertInternalType('array', $array); $array = $this->api_admin->support_canned_get_list(); $this->assertInternalType('array', $array); $list = $array['list']; $this->assertInternalType('array', $list); $item = $list[0]; $this->assertArrayHasKey('category', $item); $data = array( 'id' => '1', ); $data['category_id'] = 1; $data['title'] = 'new canned title'; $id = $this->api_admin->support_canned_create($data); $this->assertTrue(is_numeric($id)); $array = $this->api_admin->support_canned_get($data); $this->assertInternalType('array', $array); $data['id'] = $id; $data['title'] = 'new title'; $bool = $this->api_admin->support_canned_update($data); $this->assertTrue($bool); $bool = $this->api_admin->support_canned_delete($data); $this->assertTrue($bool); } public function testCannedCategory() { $array = $this->api_admin->support_canned_category_pairs(); $this->assertInternalType('array', $array); $data = array( 'id' => '1', ); $array = $this->api_admin->support_canned_category_get($data); $this->assertInternalType('array', $array); $data['title'] = 'new cat title'; $id = $this->api_admin->support_canned_category_create($data); $this->assertTrue(is_numeric($id)); $data['id'] = $id; $data['title'] = 'new title'; $bool = $this->api_admin->support_canned_category_update($data); $this->assertTrue($bool); $bool = $this->api_admin->support_canned_category_delete($data); $this->assertTrue($bool); } public function testPublicTickets() { $array = $this->api_admin->support_public_ticket_get_statuses(); $this->assertInternalType('array', $array); $array = $this->api_admin->support_public_ticket_get_list(); $this->assertInternalType('array', $array); $list = $array['list']; $this->assertInternalType('array', $list); $bool = $this->api_admin->support_batch_public_ticket_auto_close(); $this->assertTrue($bool); $data = array( 'name' => 'This is me', 'email' => 'email@email.com', 'subject' => 'subject', 'message' => 'Message', ); $id = $this->api_admin->support_public_ticket_create($data); $this->assertTrue(is_numeric($id)); $data['id'] = $id; $array = $this->api_admin->support_public_ticket_get($data); $this->assertInternalType('array', $array); $data['subject'] = 'new subject'; $data['status'] = 'closed'; $bool = $this->api_admin->support_public_ticket_update($data); $this->assertTrue($bool); $data['content'] = 'new message'; $id = $this->api_admin->support_public_ticket_reply($data); $this->assertTrue(is_numeric($id)); $id = $this->api_admin->support_public_ticket_reply($data); $this->assertTrue(is_numeric($id)); $bool = $this->api_admin->support_public_ticket_close($data); $this->assertTrue($bool); $bool = $this->api_admin->support_public_ticket_delete($data); $this->assertTrue($bool); } public function testSupport() { $bool = $this->api_admin->support_batch_ticket_auto_close(); $this->assertTrue($bool); $array = $this->api_admin->support_ticket_get_statuses(array()); $this->assertInternalType('array', $array); $data = array( 'client_id' => 1, 'support_helpdesk_id' => 1, 'subject' => 'this is subject', 'content' => 'this is content', ); $id = $this->api_admin->support_ticket_create($data); $this->assertTrue(is_numeric($id)); $data['id'] = $id; $array = $this->api_admin->support_ticket_get($data); $this->assertInternalType('array', $array); $data['content'] = 'other message'; $mid = $this->api_admin->support_ticket_reply($data); $this->assertTrue(is_numeric($mid)); $mid = $this->api_admin->support_ticket_reply($data); $this->assertTrue(is_numeric($mid)); $bool = $this->api_admin->support_ticket_message_update(array('id'=>$mid, 'content'=>'This is a new content')); $this->assertTrue($bool); $bool = $this->api_admin->support_ticket_close($data); $this->assertTrue($bool); $data['subject'] = 'new subject'; $bool = $this->api_admin->support_ticket_update($data); $this->assertTrue($bool); $data = array( 'ticket_id' => $id, 'note' => 'this is note', ); $nid = $this->api_admin->support_note_create($data); $this->assertTrue(is_numeric($id)); $data['id'] = $nid; $bool = $this->api_admin->support_note_delete($data); $this->assertTrue($bool); $data['id'] = $id; $bool = $this->api_admin->support_ticket_delete($data); $this->assertTrue($bool); } public function testHelpdesk() { $data = array( 'name' => 'title', ); $id = $this->api_admin->support_helpdesk_create($data); $this->assertTrue(is_numeric($id)); $data['id'] = $id; $array = $this->api_admin->support_helpdesk_get($data); $this->assertInternalType('array', $array); $data['name'] = 'new name'; $data['can_reopen'] = 1; $data['close_after'] = 15; $data['signature'] = 'new name'; $data['email'] = 'new@email.com'; $bool = $this->api_admin->support_helpdesk_update($data); $this->assertTrue($bool); $bool = $this->api_admin->support_helpdesk_delete($data); $this->assertTrue($bool); $array = $this->api_admin->support_helpdesk_get_list($data); $this->assertInternalType('array', $array); $array = $this->api_admin->support_helpdesk_get_pairs($data); $this->assertInternalType('array', $array); } public function testExpirePublicTicket() { $data = array( 'name' => 'Me', 'email' => 'test@test.com', 'subject' => 'test@test.com', 'message' => 'test@test.com', ); $hash = $this->api_guest->support_ticket_create($data); $ticket = $this->api_guest->support_ticket_get(array('hash'=>$hash)); $model = $this->di['db']->load('SupportPTicket',$ticket['id']); $model->status = 'on_hold'; $model->updated_at = date('Y-m-d H:i:s', strtotime('-50 days')); $this->di['db']->store($model); $bool = $this->api_admin->support_batch_public_ticket_auto_close(); $array = $this->api_admin->support_public_ticket_get_list(array('status'=>'on_hold')); $this->assertInternalType('array', $array); $this->assertTrue(empty($array['list'])); } public function testTicketTask() { $data = array( 'support_helpdesk_id' => 1, 'subject' => 'test@test.com', 'content' => 'test@test.com', 'rel_type' => 'order', 'rel_task' => 'cancel', ); $id = $this->api_client->support_ticket_create($data); $data = array( 'id' => $id, ); $bool = $this->api_admin->support_task_complete($data); $this->assertTrue($bool); } public function testSupportTicketGetList() { $array = $this->api_admin->support_ticket_get_list(array()); $this->assertInternalType('array', $array); $this->assertArrayHasKey('list', $array); $list = $array['list']; $this->assertInternalType('array', $list); if (count($list)) { $item = $list[0]; $this->assertInternalType('array', $item); $this->assertArrayHasKey('id', $item); $this->assertArrayHasKey('support_helpdesk_id', $item); $this->assertArrayHasKey('client_id', $item); $this->assertArrayHasKey('priority', $item); $this->assertArrayHasKey('subject', $item); $this->assertArrayHasKey('status', $item); $this->assertArrayHasKey('rel_type', $item); $this->assertArrayHasKey('rel_task', $item); $this->assertArrayHasKey('rel_new_value', $item); $this->assertArrayHasKey('rel_status', $item); $this->assertArrayHasKey('created_at', $item); $this->assertArrayHasKey('updated_at', $item); $this->assertArrayHasKey('replies', $item); $this->assertArrayHasKey('first', $item); $this->assertInternalType('array', $item['first']); $this->assertArrayHasKey('helpdesk', $item); $helpdesk = $item['helpdesk']; if (count($helpdesk)){ $this->assertInternalType('array', $helpdesk); $this->assertArrayHasKey('id', $helpdesk); $this->assertArrayHasKey('name', $helpdesk); $this->assertArrayHasKey('email', $helpdesk); $this->assertArrayHasKey('close_after', $helpdesk); $this->assertArrayHasKey('can_reopen', $helpdesk); $this->assertArrayHasKey('signature', $helpdesk); $this->assertArrayHasKey('created_at', $helpdesk); $this->assertArrayHasKey('updated_at', $helpdesk); } $this->assertArrayHasKey('messages', $item); $this->assertInternalType('array', $item['messages']); $this->assertArrayHasKey('rel', $item); $this->assertInternalType('array', $item['rel']); $this->assertArrayHasKey('client', $item); $this->assertInternalType('array', $item['client']); } } public function testTicketBatchDelete() { $array = $this->api_admin->support_ticket_get_list(array()); foreach ($array['list'] as $value) { $ids[] = $value['id']; } $result = $this->api_admin->support_batch_delete(array('ids' => $ids)); $array = $this->api_admin->support_ticket_get_list(array()); $this->assertEquals(0, count($array['list'])); $this->assertTrue($result); } public function testPublicTicketBatchDelete() { $array = $this->api_admin->support_public_ticket_get_list(array()); foreach ($array['list'] as $value) { $ids[] = $value['id']; } $result = $this->api_admin->support_batch_delete_public(array('ids' => $ids)); $array = $this->api_admin->support_public_ticket_get_list(array()); $this->assertEquals(0, count($array['list'])); $this->assertTrue($result); } }