View source
<?php
namespace Drupal\support_ticket\Tests;
use Drupal\support_ticket\Entity\SupportTicket;
class SupportTicketSaveTest extends SupportTicketTestBase {
protected $webUser;
public static $modules = array(
'support_ticket_test',
);
protected function setUp() {
parent::setUp();
$web_user = $this
->drupalCreateUser(array(
'access support tickets',
'create ticket ticket',
));
$this
->drupalLogin($web_user);
$this->webUser = $web_user;
}
function testImport() {
$stids = \Drupal::entityManager()
->getStorage('support_ticket')
->getQuery()
->sort('stid', 'DESC')
->range(0, 1)
->execute();
$max_stid = reset($stids);
$test_stid = $max_stid + mt_rand(1000, 1000000);
$title = $this
->randomMachineName(8);
$support_ticket = array(
'title' => $title,
'body' => array(
array(
'value' => $this
->randomMachineName(32),
),
),
'uid' => $this->webUser
->id(),
'support_ticket_type' => 'ticket',
'stid' => $test_stid,
);
$support_ticket = entity_create('support_ticket', $support_ticket);
$support_ticket
->enforceIsNew();
$this
->assertEqual($support_ticket
->getOwnerId(), $this->webUser
->id());
$support_ticket
->save();
$support_ticket_by_stid = SupportTicket::load($test_stid);
$this
->assertTrue($support_ticket_by_stid, 'SupportTicket load by support_ticket ID.');
$support_ticket_by_title = $this
->supportTicketGetTicketByTitle($title);
$this
->assertTrue($support_ticket_by_title, 'SupportTicket load by support_ticket title.');
}
function testTimestamps() {
$edit = array(
'uid' => $this->webUser
->id(),
'support_ticket_type' => 'ticket',
'title' => $this
->randomMachineName(8),
);
entity_create('support_ticket', $edit)
->save();
$support_ticket = $this
->supportTicketGetTicketByTitle($edit['title']);
$this
->assertEqual($support_ticket
->getCreatedTime(), REQUEST_TIME, 'Creating a support_ticket sets default "created" timestamp.');
$this
->assertEqual($support_ticket
->getChangedTime(), REQUEST_TIME, 'Creating a support_ticket sets default "changed" timestamp.');
$created = $support_ticket
->getCreatedTime();
$support_ticket
->save();
$support_ticket = $this
->supportTicketGetTicketByTitle($edit['title'], TRUE);
$this
->assertEqual($support_ticket
->getCreatedTime(), $created, 'Updating a support_ticket preserves "created" timestamp.');
$support_ticket->title = 'testing_support_ticket_presave';
$support_ticket
->save();
$support_ticket = $this
->supportTicketGetTicketByTitle('testing_support_ticket_presave', TRUE);
$this
->assertEqual($support_ticket
->getCreatedTime(), 280299600, 'Saving a support_ticket uses "created" timestamp set in presave hook.');
$this
->assertEqual($support_ticket
->getChangedTime(), 979534800, 'Saving a support_ticket uses "changed" timestamp set in presave hook.');
$edit = array(
'uid' => $this->webUser
->id(),
'support_ticket_type' => 'ticket',
'title' => $this
->randomMachineName(8),
'created' => 280299600,
'changed' => 979534800,
);
entity_create('support_ticket', $edit)
->save();
$support_ticket = $this
->supportTicketGetTicketByTitle($edit['title']);
$this
->assertEqual($support_ticket
->getCreatedTime(), 280299600, 'Creating a support_ticket programmatically uses programmatically set "created" timestamp.');
$this
->assertEqual($support_ticket
->getChangedTime(), 979534800, 'Creating a support_ticket programmatically uses programmatically set "changed" timestamp.');
$support_ticket
->setCreatedTime(979534800);
$support_ticket->changed = 280299600;
$support_ticket
->save();
$support_ticket = $this
->supportTicketGetTicketByTitle($edit['title'], TRUE);
$this
->assertEqual($support_ticket
->getCreatedTime(), 979534800, 'Updating a support_ticket uses user-set "created" timestamp.');
$this
->assertEqual($support_ticket
->getChangedTime(), 280299600, 'Updating a support_ticket uses user-set "changed" timestamp.');
}
function testDeterminingChanges() {
$support_ticket = entity_create('support_ticket', array(
'uid' => $this->webUser
->id(),
'support_ticket_type' => 'ticket',
'title' => 'test_changes',
));
$support_ticket
->save();
$support_ticket
->save();
$this
->assertEqual($support_ticket
->label(), 'test_changes', 'No changes have been determined.');
$support_ticket->title = 'updated';
$support_ticket
->save();
$this
->assertEqual($support_ticket
->label(), 'updated_presave_update', 'Changes have been determined.');
$support_ticket = SupportTicket::load($support_ticket
->id());
$this
->assertEqual($support_ticket
->label(), 'updated_presave', 'Static cache has been cleared.');
}
}