Skip to content

Commit f48f475

Browse files
test: add output mapper test
1 parent ea75433 commit f48f475

File tree

3 files changed

+114
-0
lines changed

3 files changed

+114
-0
lines changed

adapter/output/jpa-mysql-repository/src/test/java/br/com/helpdev/output/repository/mapper/MessageMapperTest.java

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,21 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44

5+
import br.com.helpdev.domain.Chat;
56
import br.com.helpdev.domain.CommunicationChannel;
67
import br.com.helpdev.domain.Message;
78
import br.com.helpdev.domain.Recipient;
9+
import br.com.helpdev.domain.Status;
810
import br.com.helpdev.domain.vo.MessageBody;
911
import br.com.helpdev.domain.vo.MessageId;
1012
import br.com.helpdev.domain.vo.Phone;
13+
import br.com.helpdev.output.repository.entity.ChatEntity;
1114
import br.com.helpdev.output.repository.entity.CommunicationChannelEntity;
1215
import br.com.helpdev.output.repository.entity.MessageEntity;
1316
import br.com.helpdev.output.repository.entity.RecipientEntity;
17+
import br.com.helpdev.output.repository.entity.StatusEntity;
18+
import java.time.ZonedDateTime;
19+
import java.util.List;
1420
import org.junit.jupiter.api.Test;
1521

1622
class MessageMapperTest {
@@ -29,8 +35,111 @@ void whenEntityHasIdThenMap() {
2935
assertThat(message.getId()).isEqualTo(1L);
3036
}
3137

38+
@Test
39+
void whenDomainHasBodyThenMap() {
40+
var message = messageMapper.toDomain(entityBuilder().body("Hello ;)").build());
41+
assertThat(message.getBody()).isEqualTo(MessageBody.from("Hello ;)"));
42+
}
43+
44+
@Test
45+
void whenEntityHasBodyThenMap() {
46+
var message = messageMapper.toEntity(domainBuilder().body(MessageBody.from("Hello ;)")).build());
47+
assertThat(message.getBody()).isEqualTo("Hello ;)");
48+
}
49+
50+
@Test
51+
void whenDomainHasChannelThenMap() {
52+
var message = messageMapper.toDomain(entityBuilder().channel(CommunicationChannelEntity.WHATSAPP).build());
53+
assertThat(message.getChannel()).isEqualTo(CommunicationChannel.WHATSAPP);
54+
}
55+
56+
@Test
57+
void whenEntityHasChannelThenMap() {
58+
var message = messageMapper.toEntity(domainBuilder().channel(CommunicationChannel.PUSH).build());
59+
assertThat(message.getChannel()).isEqualTo(CommunicationChannelEntity.PUSH);
60+
}
61+
62+
@Test
63+
void whenDomainHasDateThenMap() {
64+
ZonedDateTime now = ZonedDateTime.now();
65+
var message = messageMapper.toDomain(entityBuilder().scheduleDate(now).build());
66+
assertThat(message.getScheduleDate()).isEqualTo(now);
67+
}
68+
69+
@Test
70+
void whenEntityHasDateThenMap() {
71+
ZonedDateTime now = ZonedDateTime.now();
72+
var message = messageMapper.toEntity(domainBuilder().scheduleDate(now).build());
73+
assertThat(message.getScheduleDate()).isEqualTo(now);
74+
}
75+
76+
@Test
77+
void whenDomainHasChatThenMap() {
78+
ZonedDateTime now = ZonedDateTime.now();
79+
var message = messageMapper.toDomain(entityBuilder().chats(List.of(ChatEntity.builder()
80+
.id(22L)
81+
.date(now)
82+
.status(StatusEntity.SENT)
83+
.build())).build());
84+
assertThat(message.getChats()).hasSize(1)
85+
.first()
86+
.satisfies(c -> {
87+
assertThat(c.getId()).isEqualTo(22L);
88+
assertThat(c.getDate()).isEqualTo(now);
89+
assertThat(c.getStatus()).isEqualTo(Status.SENT);
90+
}
91+
);
92+
}
93+
94+
@Test
95+
void whenEntityHasChatThenMap() {
96+
ZonedDateTime now = ZonedDateTime.now();
97+
var message = messageMapper.toEntity(domainBuilder().chats(List.of(Chat.builder()
98+
.id(23L)
99+
.date(now)
100+
.status(Status.SENDING)
101+
.build())).build());
102+
assertThat(message.getChats()).hasSize(1)
103+
.first()
104+
.satisfies(c -> {
105+
assertThat(c.getId()).isEqualTo(23L);
106+
assertThat(c.getDate()).isEqualTo(now);
107+
assertThat(c.getStatus()).isEqualTo(StatusEntity.SENDING);
108+
}
109+
);
110+
}
111+
112+
@Test
113+
void whenDomainHasRecipientThenMap() {
114+
ZonedDateTime now = ZonedDateTime.now();
115+
var message = messageMapper.toDomain(entityBuilder().recipient(RecipientEntity.builder()
116+
.email("a@b.com")
117+
.phoneId("3")
118+
.phoneNumber("4")
119+
.name("test")
120+
.build()).build());
121+
assertThat(message.getRecipient().getEmail()).isEqualTo("a@b.com");
122+
assertThat(message.getRecipient().getName()).isEqualTo("test");
123+
assertThat(message.getRecipient().getPhone()).isEqualTo(Phone.from("3", "4"));
124+
}
125+
126+
@Test
127+
void whenEntityHasRecipientThenMap() {
128+
ZonedDateTime now = ZonedDateTime.now();
129+
var message = messageMapper.toEntity(domainBuilder().recipient(Recipient.builder()
130+
.email("a@b.com")
131+
.phone(Phone.from("1", "2"))
132+
.name("test")
133+
.build()).build());
134+
assertThat(message.getRecipient().getEmail()).isEqualTo("a@b.com");
135+
assertThat(message.getRecipient().getName()).isEqualTo("test");
136+
assertThat(message.getRecipient().getPhoneId()).isEqualTo("1");
137+
assertThat(message.getRecipient().getPhoneNumber()).isEqualTo("2");
138+
}
139+
32140
private MessageEntity.MessageEntityBuilder entityBuilder() {
33141
return MessageEntity.builder()
142+
.id(87L)
34143
.channel(CommunicationChannelEntity.EMAIL)
35144
.recipient(RecipientEntity.builder()
36145
.phoneNumber("78924")
@@ -40,6 +149,7 @@ private MessageEntity.MessageEntityBuilder entityBuilder() {
40149

41150
private Message.MessageBuilder domainBuilder() {
42151
return Message.builder()
152+
.id(MessageId.from(88L))
43153
.channel(CommunicationChannel.WHATSAPP)
44154
.recipient(Recipient.builder()
45155
.phone(Phone.from("78924", "1243243"))

core/domain/src/main/java/br/com/helpdev/domain/vo/MessageBody.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import br.com.helpdev.domain.exception.InvalidMessageException;
44
import java.util.Objects;
5+
import lombok.EqualsAndHashCode;
56

7+
@EqualsAndHashCode
68
public class MessageBody {
79

810
public static MessageBody from(final String body) {

core/domain/src/main/java/br/com/helpdev/domain/vo/Phone.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22

33
import java.util.Objects;
44
import java.util.Optional;
5+
import lombok.EqualsAndHashCode;
56
import lombok.Getter;
67

8+
@EqualsAndHashCode
79
public class Phone {
810

911
public static Phone newNumber(final String phoneNumber) {

0 commit comments

Comments
 (0)