1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
<?php
/**
* This file tests the request object generation for a /mail/send API call
*
* PHP Version - 5.6, 7.0, 7.1, 7.2
*
* @package SendGrid\Tests
* @author Elmer Thomas <dx@sendgrid.com>
* @copyright 2018-19 Twilio SendGrid
* @license https://opensource.org/licenses/MIT The MIT License
* @version GIT: <git_id>
* @link http://packagist.org/packages/sendgrid/sendgrid
*/
namespace SendGrid\Tests;
/**
* This class tests the request object generation for a /mail/send API call
*
* @package SendGrid\Tests
*/
class SingleEmailToASingleRecipientTest extends BaseTestClass
{
private $REQUEST_OBJECT = <<<'JSON'
{
"personalizations": [
{
"to": [
{
"email": "test@example.com",
"name": "Example User"
}
]
}
],
"subject": "Sending with Twilio SendGrid is Fun",
"from": {
"email": "test@example.com",
"name": "Example User"
},
"content": [
{
"type": "text/plain",
"value": "and easy to do anywhere, even with PHP"
},
{
"type": "text/html",
"value": "<strong>and easy to do anywhere, even with PHP</strong>"
}
]
}
JSON;
/**
* Test all parameters using objects
*/
public function testWithObjects()
{
$from = new \SendGrid\Mail\From("test@example.com", "Example User");
$subject = new \SendGrid\Mail\Subject("Sending with Twilio SendGrid is Fun");
$to = new \SendGrid\Mail\To("test@example.com", "Example User");
$plainTextContent = new \SendGrid\Mail\PlainTextContent(
"and easy to do anywhere, even with PHP"
);
$htmlContent = new \SendGrid\Mail\HtmlContent(
"<strong>and easy to do anywhere, even with PHP</strong>"
);
$email = new \SendGrid\Mail\Mail(
$from,
$to,
$subject,
$plainTextContent,
$htmlContent
);
$json = json_encode($email->jsonSerialize());
$isEqual = BaseTestClass::compareJSONObjects($json, $this->REQUEST_OBJECT);
$this->assertTrue($isEqual);
}
/**
* Test all parameters without using objects
*/
public function testWithoutObjects()
{
$email = new \SendGrid\Mail\Mail();
$email->setFrom("test@example.com", "Example User");
$email->setSubject("Sending with Twilio SendGrid is Fun");
$email->addTo("test@example.com", "Example User");
$email->addContent("text/plain", "and easy to do anywhere, even with PHP");
$email->addContent(
"text/html", "<strong>and easy to do anywhere, even with PHP</strong>"
);
$json = json_encode($email->jsonSerialize());
$isEqual = BaseTestClass::compareJSONObjects($json, $this->REQUEST_OBJECT);
$this->assertTrue($isEqual);
}
}
|