99use PhpList \Core \Domain \Analytics \Model \LinkTrack ;
1010use PhpList \Core \Domain \Analytics \Repository \LinkTrackRepository ;
1111use PhpList \Core \Domain \Analytics \Service \LinkTrackService ;
12+ use PhpList \Core \Domain \Messaging \Model \Dto \MessagePrecacheDto ;
1213use PhpList \Core \Domain \Messaging \Model \Message ;
1314use PhpList \Core \Domain \Messaging \Model \Message \MessageContent ;
1415use 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 ]);
0 commit comments