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->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;
}

@ -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\TicketGatewayGeneratedFields;
use DataAccess\CommonDao;
class TicketGateway extends CommonDao {
@ -86,7 +87,7 @@ class TicketGateway extends CommonDao {
/**
* @param $ticket Ticket
* @param $heskSettings
* @return Ticket
* @return TicketGatewayGeneratedFields
*/
function createTicket($ticket, $heskSettings) {
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\NewTicketValidator;
use BusinessLogic\Tickets\TicketCreator;
use BusinessLogic\Tickets\TicketGatewayGeneratedFields;
use BusinessLogic\Tickets\TrackingIdGenerator;
use BusinessLogic\ValidationModel;
use Core\Constants\Priority;
@ -67,6 +68,11 @@ class CreateTicketTest extends TestCase {
*/
private $userContext;
/**
* @var $ticketGatewayGeneratedFields TicketGatewayGeneratedFields
*/
private $ticketGatewayGeneratedFields;
protected function setUp() {
$this->ticketGateway = $this->createMock(TicketGateway::class);
$this->newTicketValidator = $this->createMock(NewTicketValidator::class);
@ -97,7 +103,8 @@ class CreateTicketTest extends TestCase {
$this->newTicketValidator->method('validateNewTicketForCustomer')->willReturn(new ValidationModel());
$this->trackingIdGenerator->method('generateTrackingId')->willReturn('123-456-7890');
$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() {
@ -169,4 +176,18 @@ class CreateTicketTest extends TestCase {
self::assertThat($ticket->userAgent, self::equalTo($this->ticketRequest->userAgent));
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