I think I finished the ticket creator
This commit is contained in:
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;
|
||||||
}
|
}
|
||||||
|
|||||||
15
api/BusinessLogic/Tickets/TicketGatewayGeneratedFields.php
Normal file
15
api/BusinessLogic/Tickets/TicketGatewayGeneratedFields.php
Normal file
@ -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…
x
Reference in New Issue
Block a user