/** * Test ticket by id method => uses tickets.json data */ public function testSingleTicket() { $ticket = new TicketM($this->data->singleTicket); $target = new TicketM(array('displayId' => $ticket->getDisplayId())); $this->restMock->method('restCall')->willReturn(json_encode($this->data->singleTicket)); $this->restMock->getTicketById($target->getDisplayId(), $target); $this->assertTrue(count($ticket->getNotes()) === count($target->getNotes())); $this->assertEquals($ticket, $target); $this->assertTrue($ticket->getDescription() === $target->getDescription()); $this->assertTrue($ticket->getSubject() === $target->getSubject()); $this->assertTrue($ticket->getStatus() === $target->getStatus()); $this->assertTrue($ticket->getStatusName() === $target->getStatusName()); $this->assertTrue($ticket->getId() === $target->getId()); $this->assertTrue($ticket->getDeleted() === $target->getDeleted()); $this->assertEquals($ticket->toJsonData(), $target->toJsonData()); if ($ticket->getNotes()) { $this->assertNotEmpty($target->getNotes()); $expected = $ticket->getNotes(); $notes = $target->getNotes(); /** @var Freshdesk\Model\Note $note */ foreach ($notes as $k => $note) { $this->assertInstanceOf(get_class($expected[$k]), $note); $this->assertTrue($expected[$k]->getDeleted() === $note->getDeleted()); $this->assertEquals($expected[$k]->toJsonData(), $note->toJsonData()); } } }
/** * @param TicketM $model * @param bool $requesterOnly = true * @param bool $includePrivate = false * @return array<\Freshdesk\Model\Ticket> */ public function getTicketNotes(TicketM $model, $requesterOnly = true, $includePrivate = false) { $notes = $model->getNotes(); if (empty($notes)) { $model = $this->getFullTicket($model->getDisplayId(), $model); $notes = $model->getNotes(); } $return = array(); foreach ($notes as $note) { /** @var \Freshdesk\Model\Note $note */ if ($includePrivate === false && $note->getPrivate()) { continue; } //do not include private tickets if ($requesterOnly === true && $note->getUserId() === $model->getRequesterId()) { $return[] = $note; } else { $return[] = $note; } } return $return; }