I think I finished the ticket creator

remotes/upstream/api-rewrite
Mike Koch 7 years ago
parent 489f191a13
commit dc0c8a351b

@ -74,9 +74,10 @@ class TicketCreator {
$ticket->userAgent = $ticketRequest->userAgent; $ticket->userAgent = $ticketRequest->userAgent;
$ticket->screenResolution = $ticketRequest->screenResolution; $ticket->screenResolution = $ticketRequest->screenResolution;
$ticket = $this->ticketGateway->createTicket($ticket, $heskSettings); $ticketGatewayGeneratedFields = $this->ticketGateway->createTicket($ticket, $heskSettings);
//-- TODO get SQL-generated fields $ticket->dateCreated = $ticketGatewayGeneratedFields->dateCreated;
$ticket->lastChanged = $ticketGatewayGeneratedFields->dateModified;
return $ticket; return $ticket;
} }

@ -0,0 +1,15 @@
<?php
/**
* Created by PhpStorm.
* User: cokoch
* Date: 2/13/2017
* Time: 12:03 PM
*/
namespace BusinessLogic\Tickets;
class TicketGatewayGeneratedFields {
public $dateCreated;
public $dateModified;
}

@ -4,6 +4,7 @@ namespace DataAccess\Tickets;
use BusinessLogic\Tickets\Ticket; use BusinessLogic\Tickets\Ticket;
use BusinessLogic\Tickets\TicketGatewayGeneratedFields;
use DataAccess\CommonDao; use DataAccess\CommonDao;
class TicketGateway extends CommonDao { class TicketGateway extends CommonDao {
@ -86,7 +87,7 @@ class TicketGateway extends CommonDao {
/** /**
* @param $ticket Ticket * @param $ticket Ticket
* @param $heskSettings * @param $heskSettings
* @return Ticket * @return TicketGatewayGeneratedFields
*/ */
function createTicket($ticket, $heskSettings) { function createTicket($ticket, $heskSettings) {
global $hesklang; global $hesklang;
@ -188,6 +189,15 @@ class TicketGateway extends CommonDao {
) )
"; ";
return $ticket; hesk_dbQuery($sql);
$rs = hesk_dbQuery('SELECT `dt`, `lastchange` FROM `' . hesk_dbEscape($heskSettings['db_pfix']) . 'tickets` WHERE `id` = ' . intval(hesk_dbInsertID()));
$row = hesk_dbFetchRow($rs);
$generatedFields = new TicketGatewayGeneratedFields();
$generatedFields->dateCreated = $row['dt'];
$generatedFields->dateModified = $row['lastchange'];
return $generatedFields;
} }
} }

@ -14,6 +14,7 @@ use BusinessLogic\Tickets\Autoassigner;
use BusinessLogic\Tickets\CreateTicketByCustomerModel; use BusinessLogic\Tickets\CreateTicketByCustomerModel;
use BusinessLogic\Tickets\NewTicketValidator; use BusinessLogic\Tickets\NewTicketValidator;
use BusinessLogic\Tickets\TicketCreator; use BusinessLogic\Tickets\TicketCreator;
use BusinessLogic\Tickets\TicketGatewayGeneratedFields;
use BusinessLogic\Tickets\TrackingIdGenerator; use BusinessLogic\Tickets\TrackingIdGenerator;
use BusinessLogic\ValidationModel; use BusinessLogic\ValidationModel;
use Core\Constants\Priority; use Core\Constants\Priority;
@ -67,6 +68,11 @@ class CreateTicketTest extends TestCase {
*/ */
private $userContext; private $userContext;
/**
* @var $ticketGatewayGeneratedFields TicketGatewayGeneratedFields
*/
private $ticketGatewayGeneratedFields;
protected function setUp() { protected function setUp() {
$this->ticketGateway = $this->createMock(TicketGateway::class); $this->ticketGateway = $this->createMock(TicketGateway::class);
$this->newTicketValidator = $this->createMock(NewTicketValidator::class); $this->newTicketValidator = $this->createMock(NewTicketValidator::class);
@ -97,7 +103,8 @@ class CreateTicketTest extends TestCase {
$this->newTicketValidator->method('validateNewTicketForCustomer')->willReturn(new ValidationModel()); $this->newTicketValidator->method('validateNewTicketForCustomer')->willReturn(new ValidationModel());
$this->trackingIdGenerator->method('generateTrackingId')->willReturn('123-456-7890'); $this->trackingIdGenerator->method('generateTrackingId')->willReturn('123-456-7890');
$this->autoassigner->method('getNextUserForTicket')->willReturn(1); $this->autoassigner->method('getNextUserForTicket')->willReturn(1);
$this->ticketGateway->method('createTicket')->will($this->returnArgument(0)); $this->ticketGatewayGeneratedFields = new TicketGatewayGeneratedFields();
$this->ticketGateway->method('createTicket')->willReturn($this->ticketGatewayGeneratedFields);
} }
function testItSavesTheTicketToTheDatabase() { function testItSavesTheTicketToTheDatabase() {
@ -169,4 +176,18 @@ class CreateTicketTest extends TestCase {
self::assertThat($ticket->userAgent, self::equalTo($this->ticketRequest->userAgent)); self::assertThat($ticket->userAgent, self::equalTo($this->ticketRequest->userAgent));
self::assertThat($ticket->screenResolution, self::equalTo($this->ticketRequest->screenResolution)); self::assertThat($ticket->screenResolution, self::equalTo($this->ticketRequest->screenResolution));
} }
function testItReturnsTheGeneratedPropertiesOnTheTicket() {
//-- Arrange
$this->ticketGatewayGeneratedFields->dateCreated = 'date created';
$this->ticketGatewayGeneratedFields->dateModified = 'date modified';
//-- Act
$ticket = $this->ticketCreator->createTicketByCustomer($this->ticketRequest, $this->heskSettings, $this->modsForHeskSettings, $this->userContext);
//-- Assert
self::assertThat($ticket->dateCreated, self::equalTo($this->ticketGatewayGeneratedFields->dateCreated));
self::assertThat($ticket->lastChanged, self::equalTo($this->ticketGatewayGeneratedFields->dateModified));
}
} }

Loading…
Cancel
Save