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->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;
|
||||
}
|
||||
|
||||
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\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…
x
Reference in New Issue
Block a user