11package br .com .helpdev .usecase ;
22
3+ import static org .assertj .core .api .Assertions .assertThatThrownBy ;
4+ import static org .mockito .Mockito .doNothing ;
5+ import static org .mockito .Mockito .times ;
6+ import static org .mockito .Mockito .verify ;
7+ import static org .mockito .Mockito .when ;
8+
9+ import br .com .helpdev .domain .vo .MessageId ;
310import br .com .helpdev .usecase .port .MessageRepository ;
11+ import org .junit .jupiter .api .Test ;
412import org .junit .jupiter .api .extension .ExtendWith ;
513import org .mockito .InjectMocks ;
614import org .mockito .Mock ;
@@ -16,6 +24,34 @@ class DeleteRequestNotificationTest {
1624 @ InjectMocks
1725 private DeleteRequestNotification deleteRequestNotification ;
1826
27+ @ Test
28+ void shouldBeDeleteMessageWhenMessageIdExists () {
29+ final var messageId = MessageId .from (12L );
30+
31+ when (repository .exists (messageId )).thenReturn (true );
32+ doNothing ().when (repository ).delete (messageId );
33+
34+ deleteRequestNotification .delete (messageId );
35+
36+ verify (repository , times (1 ))
37+ .exists (messageId );
38+ verify (repository , times (1 ))
39+ .delete (messageId );
40+ }
41+
42+ @ Test
43+ void shouldThrowsMessageNotFoundExceptionWhenNotFoundId () {
44+ final var messageId = MessageId .from (12L );
45+
46+ when (repository .exists (messageId )).thenReturn (false );
47+
48+ assertThatThrownBy (() -> deleteRequestNotification .delete (messageId ))
49+ .hasMessage ("Message id: " + messageId .value () + " dont exists" );
50+
51+
52+ verify (repository , times (1 ))
53+ .exists (messageId );
54+ }
1955
2056
2157}
0 commit comments