Skip to content

Commit 35cb76d

Browse files
test: add unit tests
1 parent 629f2af commit 35cb76d

File tree

2 files changed

+427
-4
lines changed

2 files changed

+427
-4
lines changed
Lines changed: 107 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,112 @@
11
package br.com.helpdev.controller;
22

3-
import static org.junit.jupiter.api.Assertions.*;
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.mockito.ArgumentMatchers.any;
5+
import static org.mockito.Mockito.never;
6+
import static org.mockito.Mockito.verify;
7+
import static org.mockito.Mockito.when;
48

9+
import br.com.helpdev.controller.dto.MessageCreateDto;
10+
import br.com.helpdev.controller.dto.MessageResponseDto;
11+
import br.com.helpdev.controller.dto.RecipientDto;
12+
import br.com.helpdev.controller.mapper.ControllerMessageMapper;
13+
import br.com.helpdev.domain.Message;
14+
import br.com.helpdev.domain.Recipient;
15+
import br.com.helpdev.domain.exception.NotificationException;
16+
import br.com.helpdev.domain.vo.MessageBody;
17+
import br.com.helpdev.domain.vo.MessageId;
18+
import br.com.helpdev.domain.vo.Phone;
19+
import br.com.helpdev.usecase.DeleteRequestNotification;
20+
import br.com.helpdev.usecase.FindRequestNotification;
21+
import br.com.helpdev.usecase.PushRequestNotification;
22+
import java.util.Collections;
23+
import org.junit.jupiter.api.Test;
24+
import org.junit.jupiter.api.extension.ExtendWith;
25+
import org.mockito.InjectMocks;
26+
import org.mockito.Mock;
27+
import org.mockito.Spy;
28+
import org.mockito.junit.jupiter.MockitoExtension;
29+
30+
@ExtendWith(MockitoExtension.class)
531
class MessageControllerTest {
632

7-
}
33+
public static final RecipientDto RECIPIENT_DTO = RecipientDto.builder()
34+
.name("jorge")
35+
.phoneNumber("123")
36+
.build();
37+
public static final Recipient RECIPIENT = Recipient.builder()
38+
.name("jorge")
39+
.phone(Phone.newNumber("123"))
40+
.build();
41+
42+
@InjectMocks
43+
private MessageController messageController;
44+
@Mock
45+
private FindRequestNotification findRequestNotification;
46+
@Mock
47+
private PushRequestNotification pushRequestNotification;
48+
@Mock
49+
private DeleteRequestNotification deleteRequestNotification;
50+
@Spy
51+
private final ControllerMessageMapper mapper = new ControllerMessageMapper();
52+
53+
@Test
54+
public void whenDeleteTheReturn204() throws NotificationException {
55+
var id = 1L;
56+
var messageId = MessageId.from(id);
57+
var response = messageController.delete(id);
58+
assertThat(response.getStatus()).isEqualTo(204);
59+
verify(deleteRequestNotification).delete(messageId);
60+
verify(mapper, never()).toDomain(any());
61+
verify(mapper, never()).toDto(any());
62+
}
63+
64+
@Test
65+
public void whenFindByIdTheReturn200() throws NotificationException {
66+
var id = 2L;
67+
var messageId = MessageId.from(id);
68+
when(findRequestNotification.find(messageId)).thenReturn(Message.builder()
69+
.recipient(RECIPIENT)
70+
.id(messageId)
71+
.body(MessageBody.from("body"))
72+
.build());
73+
var response = messageController.find(id);
74+
assertThat(response.getEntity()).isEqualTo(MessageResponseDto.builder()
75+
.id(id)
76+
.recipient(RECIPIENT_DTO)
77+
.body("body")
78+
.chats(Collections.emptyList())
79+
.build());
80+
assertThat(response.getStatus()).isEqualTo(200);
81+
verify(findRequestNotification).find(messageId);
82+
verify(mapper, never()).toDomain(any());
83+
verify(mapper).toDto(any());
84+
}
85+
86+
@Test
87+
public void whenCreateTheReturn201() throws NotificationException {
88+
var id = 4L;
89+
var messageId = MessageId.from(id);
90+
var body = "Olá";
91+
var messageBody = MessageBody.from(body);
92+
when(pushRequestNotification.push(any())).thenReturn(Message.builder()
93+
.recipient(RECIPIENT)
94+
.id(messageId)
95+
.body(messageBody)
96+
.build());
97+
var response = messageController.create(MessageCreateDto.builder()
98+
.body(body)
99+
.recipient(RECIPIENT_DTO)
100+
.build());
101+
assertThat(response.getEntity()).isEqualTo(MessageResponseDto.builder()
102+
.id(id).recipient(RECIPIENT_DTO)
103+
.body(body)
104+
.chats(Collections.emptyList())
105+
.build());
106+
assertThat(response.getStatus()).isEqualTo(201);
107+
verify(pushRequestNotification).push(any());
108+
verify(mapper).toDomain(any());
109+
verify(mapper).toDto(any());
110+
}
111+
112+
}

0 commit comments

Comments
 (0)