1
0
Fork 0
m365-php/vendor/microsoft/microsoft-graph/tests/Functional/MailTest.php

127 lines
4.4 KiB
PHP

<?php
use PHPUnit\Framework\TestCase;
use Microsoft\Graph\Test\GraphTestBase;
use Microsoft\Graph\Model;
class MailTest extends TestCase
{
private $_client;
protected function setUp(): void
{
$graphTestBase = new GraphTestBase();
$this->_client = $graphTestBase->graphClient;
}
/**
* @group functional
*/
public function createEmail($emailBody)
{
$me = $this->_client->createRequest("GET", "/me")
->setReturnType(Model\User::class)
->execute();
$subject = new DateTime();
$subject = $subject->format('Y-m-d H:i:s');
$message = new Model\Message();
$message->setSubject($subject);
$body = new Model\ItemBody();
$body->setContent($emailBody);
$message->setBody($body);
$emailAddress = new Model\EmailAddress();
$emailAddress->setAddress($me->getMail());
$recipient = new Model\Recipient();
$recipient->setEmailAddress($emailAddress);
$message->setToRecipients(array($recipient));
return $message;
}
/**
* @group functional
*/
public function testSendMail()
{
$message = $this->createEmail("Sent from the SendMail test - Técnica");
$body = array("message" => $message);
$this->_client->createRequest("POST", "/me/sendmail")
->attachBody($body)
->execute();
$subject = $message->getSubject();
$mailFolderMessages = $this->_client->createRequest("GET", "/me/mailFolders/sentItems/messages?\$filter=subject eq '$subject'")
->setReturnType(Model\Message::class)
->execute();
$this->assertNotNull($mailFolderMessages);
}
/**
* @group functional
*/
public function testSendMailWithAttachment()
{
$message = $this->createEmail("Sent from the SendMailWithAttachment test");
$attachment = new Model\FileAttachment();
$attachment->setName("MyFileAttachment.txt");
$attachment->setContentBytes("data");
$attachment->setODataType("#microsoft.graph.fileAttachment");
$message->setAttachments(array($attachment));
$body = array("message" => $message);
$this->_client->createRequest("POST", "/me/sendmail")
->attachBody($body)
->execute();
$mailFolderMessages = $this->_client->createRequest("GET", "/me/mailFolders/sentItems/messages?\$filter=subject eq '\$message->getSubject()'")
->setReturnType(Model\Message::class)
->execute();
$this->assertNotNull($mailFolderMessages);
}
/**
* @group functional
*/
public function testGetMailWithAttachment()
{
$messageCollection = $this->_client->createRequest("GET", "/me/messages?\$filter=hasAttachments eq true")
->setReturnType(Model\Message::class)
->execute();
$messageId = $messageCollection[0]->getId();
if (count($messageCollection) > 0) {
$attachments = $this->_client->createRequest("GET", "/me/messages/$messageId/attachments")
->setReturnType(Model\Attachment::class)
->execute();
$attachmentId = $attachments[0]->getId();
$attachment = $this->_client->createRequest("GET", "/me/messages/$messageId/attachments/$attachmentId")
->setReturnType(Model\FileAttachment::class)
->execute();
$this->assertInstanceOf(Model\FileAttachment::class, $attachment);
$this->assertNotNull($attachment->getContentBytes());
}
}
/**
* @group functional
*/
public function testMailGetNextPage()
{
$messageIterator = $this->_client->createCollectionRequest("GET", "/me/messages")
->setReturnType(Model\Message::class);
$messages = $messageIterator->getPage();
while (!$messageIterator->isEnd())
{
$messages = $messageIterator->getPage();
}
$this->assertNotNull($messages);
}
}