Skip to content

Commit b1c80cd

Browse files
committed
Test fix
1 parent 2b0c256 commit b1c80cd

4 files changed

Lines changed: 42 additions & 14 deletions

File tree

src/Domain/Messaging/Model/Dto/MessagePrecacheDto.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class MessagePrecacheDto
1616
public string $textContent = '';
1717
public string $footer;
1818
public string $textFooter;
19-
public string $htmlFooter;
19+
public string $htmlFooter = '';
2020
public bool $htmlFormatted;
2121
public string $sendFormat;
2222
public ?string $template = null;

src/Domain/Messaging/Service/RateLimitedCampaignMailer.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public function __construct(MailerInterface $mailer, SendRateLimiter $limiter)
2424
public function composeEmail(
2525
Message $message,
2626
Subscriber $subscriber,
27-
MessagePrecacheDto $processedContent,
27+
MessagePrecacheDto $messagePrecacheDto,
2828
): Email {
2929
$email = new Email();
3030
if ($message->getOptions()->getFromField() !== '') {
@@ -37,10 +37,10 @@ public function composeEmail(
3737

3838
return $email
3939
->to($subscriber->getEmail())
40-
->subject($processedContent->subject)
41-
->text($processedContent->textContent)
40+
->subject($messagePrecacheDto->subject)
41+
->text($messagePrecacheDto->textContent)
4242
// todo: check htmlFooterit should be html of textContent
43-
->html($processedContent->content);
43+
->html($messagePrecacheDto->content);
4444
}
4545

4646
/**

tests/Unit/Domain/Analytics/Service/LinkTrackServiceTest.php

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use PhpList\Core\Domain\Analytics\Model\LinkTrack;
1010
use PhpList\Core\Domain\Analytics\Repository\LinkTrackRepository;
1111
use PhpList\Core\Domain\Analytics\Service\LinkTrackService;
12+
use PhpList\Core\Domain\Messaging\Model\Dto\MessagePrecacheDto;
1213
use PhpList\Core\Domain\Messaging\Model\Message;
1314
use PhpList\Core\Domain\Messaging\Model\Message\MessageContent;
1415
use PHPUnit\Framework\MockObject\MockObject;
@@ -36,11 +37,13 @@ public function testExtractAndSaveLinksWithNoLinks(): void
3637
$messageId = 123;
3738
$userId = 456;
3839

39-
$messageContent = new MessageContent('Test Subject', 'No links here');
40+
$messageContent = new MessagePrecacheDto();
41+
$messageContent->subject = 'Test Subject';
42+
$messageContent->content = 'No links here';
4043

4144
$message = $this->createMock(Message::class);
4245
$message->method('getId')->willReturn($messageId);
43-
$message->method('getContent')->willReturn($messageContent);
46+
$message->method('getContent')->willReturn(new MessageContent('Test Subject', 'No links here'));
4447

4548
$this->linkTrackRepository->expects(self::never())->method('persist');
4649

@@ -57,6 +60,9 @@ public function testExtractAndSaveLinksWithLinks(): void
5760
. '<a href="https://test.com">this one</a>.</p>';
5861

5962
$messageContent = new MessageContent('Test Subject', $htmlContent);
63+
$messagePrecacheDto = new MessagePrecacheDto();
64+
$messagePrecacheDto->subject = 'Test Subject';
65+
$messagePrecacheDto->content = $htmlContent;
6066

6167
$message = $this->createMock(Message::class);
6268
$message->method('getId')->willReturn($messageId);
@@ -71,7 +77,7 @@ public function testExtractAndSaveLinksWithLinks(): void
7177
return null;
7278
});
7379

74-
$result = $this->subject->extractAndSaveLinks($messageContent, $userId, $messageId);
80+
$result = $this->subject->extractAndSaveLinks($messagePrecacheDto, $userId, $messageId);
7581

7682
self::assertCount(2, $result);
7783
self::assertSame('https://example.com', $result[0]->getUrl());
@@ -86,6 +92,10 @@ public function testExtractAndSaveLinksWithFooter(): void
8692
$footerContent = '<p>Footer with <a href="https://footer.com">another link</a>.</p>';
8793

8894
$messageContent = new MessageContent('Test Subject', $htmlContent, null, $footerContent);
95+
$messagePrecacheDto = new MessagePrecacheDto();
96+
$messagePrecacheDto->subject = 'Test Subject';
97+
$messagePrecacheDto->content = $htmlContent;
98+
$messagePrecacheDto->footer = $footerContent;
8999

90100
$message = $this->createMock(Message::class);
91101
$message->method('getId')->willReturn($messageId);
@@ -100,7 +110,7 @@ public function testExtractAndSaveLinksWithFooter(): void
100110
return null;
101111
});
102112

103-
$result = $this->subject->extractAndSaveLinks($messageContent, $userId, $messageId);
113+
$result = $this->subject->extractAndSaveLinks($messagePrecacheDto, $userId, $messageId);
104114

105115
self::assertCount(2, $result);
106116
self::assertSame('https://example.com', $result[0]->getUrl());
@@ -114,6 +124,9 @@ public function testExtractAndSaveLinksWithDuplicateLinks(): void
114124
$htmlContent = '<p><a href="https://example.com">Link 1</a> and <a href="https://example.com">Link 2</a>.</p>';
115125

116126
$messageContent = new MessageContent('Test Subject', $htmlContent);
127+
$messagePrecacheDto = new MessagePrecacheDto();
128+
$messagePrecacheDto->subject = 'Test Subject';
129+
$messagePrecacheDto->content = $htmlContent;
117130

118131
$message = $this->createMock(Message::class);
119132
$message->method('getId')->willReturn($messageId);
@@ -128,7 +141,7 @@ public function testExtractAndSaveLinksWithDuplicateLinks(): void
128141
return null;
129142
});
130143

131-
$result = $this->subject->extractAndSaveLinks($messageContent, $userId, $messageId);
144+
$result = $this->subject->extractAndSaveLinks($messagePrecacheDto, $userId, $messageId);
132145

133146
self::assertCount(1, $result);
134147
self::assertSame('https://example.com', $result[0]->getUrl());
@@ -141,6 +154,9 @@ public function testExtractAndSaveLinksWithNullText(): void
141154
$footerContent = '<p>Footer with <a href="https://footer.com">a link</a>.</p>';
142155

143156
$messageContent = new MessageContent('Test Subject', null, null, $footerContent);
157+
$messagePrecacheDto = new MessagePrecacheDto();
158+
$messagePrecacheDto->subject = 'Test Subject';
159+
$messagePrecacheDto->htmlFooter = $footerContent;
144160

145161
$message = $this->createMock(Message::class);
146162
$message->method('getId')->willReturn($messageId);
@@ -155,7 +171,7 @@ public function testExtractAndSaveLinksWithNullText(): void
155171
return null;
156172
});
157173

158-
$result = $this->subject->extractAndSaveLinks($messageContent, $userId, $messageId);
174+
$result = $this->subject->extractAndSaveLinks($messagePrecacheDto, $userId, $messageId);
159175

160176
self::assertCount(1, $result);
161177
self::assertSame('https://footer.com', $result[0]->getUrl());
@@ -167,6 +183,9 @@ public function testExtractAndSaveLinksWithMessageWithoutId(): void
167183
$htmlContent = '<p><a href="https://example.com">Link</a></p>';
168184

169185
$messageContent = new MessageContent('Test Subject', $htmlContent);
186+
$messagePrecacheDto = new MessagePrecacheDto();
187+
$messagePrecacheDto->subject = 'Test Subject';
188+
$messagePrecacheDto->content = $htmlContent;
170189

171190
$message = $this->createMock(Message::class);
172191
$message->method('getId')->willReturn(null);
@@ -175,7 +194,7 @@ public function testExtractAndSaveLinksWithMessageWithoutId(): void
175194
$this->expectException(MissingMessageIdException::class);
176195
$this->expectExceptionMessage('Message must have an ID');
177196

178-
$this->subject->extractAndSaveLinks($messageContent, $userId, $message->getId());
197+
$this->subject->extractAndSaveLinks($messagePrecacheDto, $userId, $message->getId());
179198
}
180199

181200
public function testIsExtractAndSaveLinksApplicableWhenClickTrackIsTrue(): void
@@ -207,6 +226,8 @@ public function testExtractAndSaveLinksWithExistingLink(): void
207226
$message = $this->createMock(Message::class);
208227
$message->method('getId')->willReturn($messageId);
209228
$message->method('getContent')->willReturn($messageContent);
229+
$messagePrecacheDto = new MessagePrecacheDto();
230+
$messagePrecacheDto->subject = 'Test Subject';
210231

211232
$existingLinkTrack = new LinkTrack();
212233
$existingLinkTrack->setMessageId($messageId);
@@ -221,7 +242,7 @@ public function testExtractAndSaveLinksWithExistingLink(): void
221242
$this->linkTrackRepository->expects(self::never())
222243
->method('persist');
223244

224-
$result = $this->subject->extractAndSaveLinks($messageContent, $userId, $message->getId());
245+
$result = $this->subject->extractAndSaveLinks($messagePrecacheDto, $userId, $message->getId());
225246

226247
self::assertCount(1, $result);
227248
self::assertSame($existingLinkTrack, $result[0]);

tests/Unit/Domain/Messaging/MessageHandler/CampaignProcessorMessageHandlerTest.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
use PhpList\Core\Domain\Messaging\Model\Message\MessageStatus;
1717
use PhpList\Core\Domain\Messaging\Repository\MessageRepository;
1818
use PhpList\Core\Domain\Messaging\Repository\UserMessageRepository;
19+
use PhpList\Core\Domain\Messaging\Service\Builder\EmailBuilder;
1920
use PhpList\Core\Domain\Messaging\Service\Handler\RequeueHandler;
2021
use PhpList\Core\Domain\Messaging\Service\Manager\MessageDataManager;
2122
use PhpList\Core\Domain\Messaging\Service\MaxProcessTimeLimiter;
23+
use PhpList\Core\Domain\Messaging\Service\MessageDataLoader;
2224
use PhpList\Core\Domain\Messaging\Service\MessageProcessingPreparator;
2325
use PhpList\Core\Domain\Messaging\Service\MessagePrecacheService;
2426
use PhpList\Core\Domain\Messaging\Service\RateLimitedCampaignMailer;
@@ -29,6 +31,7 @@
2931
use PHPUnit\Framework\TestCase;
3032
use Psr\Log\LoggerInterface;
3133
use Psr\SimpleCache\CacheInterface;
34+
use Symfony\Component\Mailer\MailerInterface;
3235
use Symfony\Component\Mime\Email;
3336
use Symfony\Component\Translation\Translator;
3437
use Symfony\Contracts\Translation\TranslatorInterface;
@@ -71,7 +74,8 @@ protected function setUp(): void
7174
});
7275

7376
$this->handler = new CampaignProcessorMessageHandler(
74-
mailer: $this->mailer,
77+
mailer: $this->createMock(MailerInterface::class),
78+
rateLimitedCampaignMailer: $this->mailer,
7579
entityManager: $this->entityManager,
7680
subscriberProvider: $this->subscriberProvider,
7781
messagePreparator: $this->messagePreparator,
@@ -87,6 +91,9 @@ protected function setUp(): void
8791
messageDataManager: $this->createMock(MessageDataManager::class),
8892
precacheService: $this->precacheService,
8993
userPersonalizer: $userPersonalizer,
94+
messageDataLoader: $this->createMock(MessageDataLoader::class),
95+
emailBuilder: $this->createMock(EmailBuilder::class),
96+
messageEnvelope: 'messageEnvelope',
9097
maxMailSize: 0,
9198
);
9299
}

0 commit comments

Comments
 (0)