@@ -239,7 +239,6 @@ public function testDeleteMessageTag(): void
239
239
public function testDeleteMessageWithTag (): void
240
240
{
241
241
$ em = $ this ->getEntityManager ();
242
- $ userRepo = self ::getContainer ()->get (UserRepository::class);
243
242
$ messageTagRepo = self ::getContainer ()->get (MessageTagRepository::class);
244
243
$ messageRepo = self ::getContainer ()->get (MessageRepository::class);
245
244
$ messageRelUserRepo = $ em ->getRepository (MessageRelUser::class);
@@ -251,9 +250,9 @@ public function testDeleteMessageWithTag(): void
251
250
252
251
$ messageRepo ->delete ($ message );
253
252
254
- $ this ->assertSame (0 , $ messageRepo ->count ([]));
255
- $ this ->assertSame (0 , $ messageRelUserRepo ->count ([]));
256
- $ this ->assertSame (0 , $ messageTagRepo ->count ([]));
253
+ $ this ->assertSame (1 , $ messageRepo ->count ([]));
254
+ $ this ->assertSame (1 , $ messageRelUserRepo ->count ([]));
255
+ $ this ->assertSame (2 , $ messageTagRepo ->count ([]));
257
256
258
257
$ this ->assertNotNull ($ this ->getUser ('admin ' ));
259
258
$ this ->assertNotNull ($ this ->getUser ('test ' ));
@@ -381,6 +380,15 @@ public function testDeleteMessage(): void
381
380
->addReceiverTo ($ testUser )
382
381
;
383
382
383
+ $ messageRelUserSender = new MessageRelUser ();
384
+ $ messageRelUserSender ->setMessage ($ message )
385
+ ->setReceiver ($ admin )
386
+ ->setReceiverType (MessageRelUser::TYPE_SENDER )
387
+ ;
388
+
389
+ $ em ->persist ($ messageRelUserSender );
390
+ $ em ->flush ();
391
+
384
392
$ this ->assertHasNoEntityViolations ($ message );
385
393
$ messageRepo ->update ($ message );
386
394
@@ -418,18 +426,26 @@ public function testDeleteMessage(): void
418
426
419
427
$ em ->clear ();
420
428
421
- // Delete message.
429
+ /** @var Message $ message */
422
430
$ message = $ messageRepo ->find ($ message ->getId ());
423
431
$ messageRepo ->delete ($ message );
424
432
425
- // No messages .
426
- $ this ->assertSame (0 , $ messageRepo ->count ([]));
427
- // No message_rel_user.
428
- $ this ->assertSame (0 , $ messageRelUserRepo ->count ([]));
433
+ // Message is not deleted .
434
+ $ this ->assertSame (1 , $ messageRepo ->count ([]));
435
+ // Message has 2 message_rel_user (sender and receiver) .
436
+ $ this ->assertSame (2 , $ messageRelUserRepo ->count ([]));
429
437
// No attachments.
430
- $ this ->assertSame (0 , $ messageAttachmentRepo ->count ([]));
438
+ $ this ->assertSame (1 , $ messageAttachmentRepo ->count ([]));
431
439
// 2 tags still exists.
432
- $ this ->assertSame (0 , $ messageTagRepo ->count ([]));
440
+ $ this ->assertSame (1 , $ messageTagRepo ->count ([]));
441
+
442
+ /** @var Message $message */
443
+ $ message = $ messageRepo ->find ($ message ->getId ());
444
+
445
+ $ em ->remove ($ message ->getReceiversSender ()[0 ]);
446
+ $ em ->flush ();
447
+
448
+ $ this ->assertSame (1 , $ message ->getReceivers ()->count ());
433
449
}
434
450
435
451
public function testCreateMessageWithApiAsOtherUser (): void
@@ -490,6 +506,7 @@ public function testCreateMessageWithApiAsOtherUser(): void
490
506
491
507
public function testDeleteMessageWithApi (): void
492
508
{
509
+ /** @var MessageRepository $messageRepo */
493
510
$ messageRepo = self ::getContainer ()->get (MessageRepository::class);
494
511
495
512
$ fromUser = $ this ->createUser ('from ' );
@@ -531,12 +548,24 @@ public function testDeleteMessageWithApi(): void
531
548
'DELETE ' ,
532
549
$ id ,
533
550
);
534
- $ this ->assertResponseStatusCodeSame (403 );
551
+ $ this ->assertResponseStatusCodeSame (Response:: HTTP_FORBIDDEN );
535
552
536
553
/** @var Message $message */
537
554
$ message = $ messageRepo ->find ($ messageId );
538
555
539
- $ this ->assertSame (1 , $ message ->getReceivers ()->count ());
556
+ $ senderRelation = $ message ->getReceiversSender ()[0 ];
557
+ $ senderRelationIri = $ this ->findIriBy (
558
+ MessageRelUser::class,
559
+ ['id ' => $ senderRelation ->getId ()]
560
+ );
561
+
562
+ $ this
563
+ ->createClientWithCredentials ($ tokenFrom )
564
+ ->request ('DELETE ' , $ senderRelationIri )
565
+ ;
566
+
567
+ $ this ->assertResponseIsSuccessful ();
568
+ $ this ->assertResponseStatusCodeSame (Response::HTTP_NO_CONTENT );
540
569
541
570
// Receiver deletes the message.
542
571
$ tokenTo = $ this ->getUserToken (
@@ -547,11 +576,18 @@ public function testDeleteMessageWithApi(): void
547
576
true
548
577
);
549
578
579
+ $ receiverRelation = $ message ->getFirstReceiver ();
580
+ $ senderRelationIri = $ this ->findIriBy (
581
+ MessageRelUser::class,
582
+ ['id ' => $ receiverRelation ?->getId()]
583
+ );
584
+
550
585
$ this ->createClientWithCredentials ($ tokenTo )->request (
551
586
'DELETE ' ,
552
- $ id ,
587
+ $ senderRelationIri ,
553
588
);
554
- $ this ->assertResponseStatusCodeSame (403 );
589
+ $ this ->assertResponseIsSuccessful ();
590
+ $ this ->assertResponseStatusCodeSame (Response::HTTP_NO_CONTENT );
555
591
}
556
592
557
593
public function testGetMessageByUser (): void
0 commit comments