Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ab6caf6

Browse files
Convert message array to MailtrapMessage class instance.
1 parent e3e779e commit ab6caf6

File tree

2 files changed

+60
-16
lines changed

2 files changed

+60
-16
lines changed

‎src/Mailtrap.php‎

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public function receiveAnEmail($params)
102102
$message = $this->fetchLastMessage();
103103

104104
foreach ($params as $param => $value) {
105-
$this->assertEquals($value, $message[$param]);
105+
$this->assertEquals($value, $message->{$param});
106106
}
107107
}
108108

@@ -121,6 +121,10 @@ public function fetchMessages()
121121

122122
$messages = json_decode($messages, true);
123123

124+
foreach ($messages as $key => $message) {
125+
$messages[$key] = new MailtrapMessage($messages);
126+
}
127+
124128
return $messages;
125129
}
126130

@@ -147,7 +151,7 @@ public function fetchLastMessages($number = 1)
147151
/**
148152
* Get the most recent message of the default inbox.
149153
*
150-
* @return array
154+
* @return MailtrapMessage
151155
*/
152156
public function fetchLastMessage()
153157
{
@@ -164,7 +168,7 @@ public function fetchLastMessage()
164168
public function fetchAttachmentsOfLastMessage()
165169
{
166170
$email = $this->fetchLastMessage();
167-
$response = $this->client->get("inboxes/{$this->config['inbox_id']}/messages/{$email['id']}/attachments")->getBody();
171+
$response = $this->client->get("inboxes/{$this->config['inbox_id']}/messages/{$email->id}/attachments")->getBody();
168172

169173
return json_decode($response, true);
170174
}
@@ -179,7 +183,7 @@ public function fetchAttachmentsOfLastMessage()
179183
public function receiveAnEmailFromEmail($senderEmail)
180184
{
181185
$message = $this->fetchLastMessage();
182-
$this->assertEquals($senderEmail, $message['from_email']);
186+
$this->assertEquals($senderEmail, $message->from_email);
183187
}
184188

185189
/**
@@ -192,7 +196,7 @@ public function receiveAnEmailFromEmail($senderEmail)
192196
public function receiveAnEmailFromName($senderName)
193197
{
194198
$message = $this->fetchLastMessage();
195-
$this->assertEquals($senderName, $message['from_name']);
199+
$this->assertEquals($senderName, $message->from_name);
196200
}
197201

198202
/**
@@ -205,7 +209,7 @@ public function receiveAnEmailFromName($senderName)
205209
public function receiveAnEmailToEmail($recipientEmail)
206210
{
207211
$message = $this->fetchLastMessage();
208-
$this->assertEquals($recipientEmail, $message['to_email']);
212+
$this->assertEquals($recipientEmail, $message->to_email);
209213
}
210214

211215
/**
@@ -218,7 +222,7 @@ public function receiveAnEmailToEmail($recipientEmail)
218222
public function receiveAnEmailToName($recipientName)
219223
{
220224
$message = $this->fetchLastMessage();
221-
$this->assertEquals($recipientName, $message['to_name']);
225+
$this->assertEquals($recipientName, $message->to_name);
222226
}
223227

224228
/**
@@ -231,7 +235,7 @@ public function receiveAnEmailToName($recipientName)
231235
public function receiveAnEmailWithSubject($subject)
232236
{
233237
$message = $this->fetchLastMessage();
234-
$this->assertEquals($subject, $message['subject']);
238+
$this->assertEquals($subject, $message->subject);
235239
}
236240

237241
/**
@@ -244,7 +248,7 @@ public function receiveAnEmailWithSubject($subject)
244248
public function receiveAnEmailWithTextBody($textBody)
245249
{
246250
$message = $this->fetchLastMessage();
247-
$this->assertEquals($textBody, $message['text_body']);
251+
$this->assertEquals($textBody, $message->text_body);
248252
}
249253

250254
/**
@@ -257,7 +261,7 @@ public function receiveAnEmailWithTextBody($textBody)
257261
public function receiveAnEmailWithHtmlBody($htmlBody)
258262
{
259263
$message = $this->fetchLastMessage();
260-
$this->assertEquals($htmlBody, $message['html_body']);
264+
$this->assertEquals($htmlBody, $message->html_body);
261265
}
262266

263267
/**
@@ -270,7 +274,7 @@ public function receiveAnEmailWithHtmlBody($htmlBody)
270274
public function seeInEmailTextBody($expected)
271275
{
272276
$email = $this->fetchLastMessage();
273-
$this->assertContains($expected, $email['text_body'], 'Email body contains text');
277+
$this->assertContains($expected, $email->text_body, 'Email body contains text');
274278
}
275279

276280
/**
@@ -283,7 +287,7 @@ public function seeInEmailTextBody($expected)
283287
public function seeInEmailHtmlBody($expected)
284288
{
285289
$email = $this->fetchLastMessage();
286-
$this->assertContains($expected, $email['html_body'], 'Email body contains HTML');
290+
$this->assertContains($expected, $email->html_body, 'Email body contains HTML');
287291
}
288292

289293
/**
@@ -296,7 +300,7 @@ public function seeInEmailHtmlBody($expected)
296300
public function seeInEmailSubject($expected)
297301
{
298302
$email = $this->fetchLastMessage();
299-
$this->assertContains($expected, $email['subject'], 'Email subject contains text');
303+
$this->assertContains($expected, $email->subject, 'Email subject contains text');
300304
}
301305

302306
/**
@@ -387,7 +391,7 @@ public function waitForEmailWithSubject($subject, $timeout = 5)
387391
$emails = $this->fetchMessages();
388392
foreach ($emails as $email) {
389393
$constraint = Assert::equalTo($subject);
390-
if ($constraint->evaluate($email['subject'], '', true)) {
394+
if ($constraint->evaluate($email->subject, '', true)) {
391395
return true;
392396
}
393397
}
@@ -414,7 +418,7 @@ public function waitForEmailWithTextInTextBody($text, $timeout = 5)
414418
$emails = $this->fetchMessages();
415419
foreach ($emails as $email) {
416420
$constraint = Assert::stringContains($text);
417-
if ($constraint->evaluate($email['text_body'], '', true)) {
421+
if ($constraint->evaluate($email->text_body, '', true)) {
418422
return true;
419423
}
420424
}
@@ -441,7 +445,7 @@ public function waitForEmailWithTextInHTMLBody($text, $timeout = 5)
441445
$emails = $this->fetchMessages();
442446
foreach ($emails as $email) {
443447
$constraint = Assert::stringContains($text);
444-
if ($constraint->evaluate($email['html_body'], '', true)) {
448+
if ($constraint->evaluate($email->html_body, '', true)) {
445449
return true;
446450
}
447451
}

‎src/MailtrapMessage.php‎

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
3+
namespace Codeception\Module;
4+
5+
/**
6+
* Represents a message in the MailTrap inbox
7+
*
8+
*/
9+
class MailtrapMessage
10+
{
11+
12+
/**
13+
* @var array Message payload
14+
*/
15+
protected $data;
16+
17+
/**
18+
* MailtrapMessage constructor.
19+
*
20+
* @param array $data
21+
*/
22+
public function __construct($data = [])
23+
{
24+
$this->data = $data;
25+
}
26+
27+
/**
28+
* @param string $name
29+
*
30+
* @return mixed|null
31+
*/
32+
public function __get($name)
33+
{
34+
if (isset($this->data[$name])) {
35+
return $this->data[$name];
36+
}
37+
38+
return null;
39+
}
40+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /