@@ -545,6 +545,12 @@ void addTaskOwner_alreadyOwner_shouldReturnWithoutChanges() {
545545
546546 @ Test
547547 void removeTaskOwner_shouldSucceed () {
548+ TaskOwner secondOwner = TaskOwner .builder ()
549+ .id (new TaskOwnerId (1L , 200L ))
550+ .task (taskBody )
551+ .build ();
552+ taskBody .addOwner (secondOwner );
553+
548554 RemoveOwnerRequestDTO request = new RemoveOwnerRequestDTO ("currentowner@mail.com" );
549555
550556 UserAuthDetails owner =
@@ -563,9 +569,31 @@ void removeTaskOwner_shouldSucceed() {
563569 assertFalse (taskBody .getOwners ().stream ()
564570 .anyMatch (o -> o .getId ().getOwnerId ().equals (100L )));
565571
572+ assertTrue (taskBody .getOwners ().stream ()
573+ .anyMatch (o -> o .getId ().getOwnerId ().equals (200L )));
574+
566575 verify (taskBodyMapper ).toResponse (taskBody , testFiles , "creator@mail.com" );
567576 }
568577
578+ @ Test
579+ void removeTaskOwner_lastOwner_shouldThrowValidationException () {
580+ RemoveOwnerRequestDTO request = new RemoveOwnerRequestDTO ("currentowner@mail.com" );
581+
582+ UserAuthDetails owner =
583+ new UserAuthDetails (100L , "currentowner@mail.com" , "12345678" , Role .ORG );
584+
585+ when (securityFacade .hasRole ("ADMIN" )).thenReturn (true );
586+ when (taskBodyRepository .findById (1L )).thenReturn (Optional .of (taskBody ));
587+ when (userFacade .findByEmail ("currentowner@mail.com" )).thenReturn (Optional .of (owner ));
588+
589+ assertThrows (ValidationException .class ,
590+ () -> taskService .removeTaskOwner (1L , request ));
591+
592+ assertEquals (1 , taskBody .getOwners ().size ());
593+ assertTrue (taskBody .getOwners ().stream ()
594+ .anyMatch (o -> o .getId ().getOwnerId ().equals (100L )));
595+ }
596+
569597 @ Test
570598 void removeTaskOwner_notAdmin_shouldThrowTaskAccessRestrictedException () {
571599 RemoveOwnerRequestDTO request = new RemoveOwnerRequestDTO ("currentowner@mail.com" );
0 commit comments