22
33import static org .assertj .core .api .Assertions .assertThat ;
44
5+ import br .com .helpdev .domain .Chat ;
56import br .com .helpdev .domain .CommunicationChannel ;
67import br .com .helpdev .domain .Message ;
78import br .com .helpdev .domain .Recipient ;
9+ import br .com .helpdev .domain .Status ;
810import br .com .helpdev .domain .vo .MessageBody ;
911import br .com .helpdev .domain .vo .MessageId ;
1012import br .com .helpdev .domain .vo .Phone ;
13+ import br .com .helpdev .output .repository .entity .ChatEntity ;
1114import br .com .helpdev .output .repository .entity .CommunicationChannelEntity ;
1215import br .com .helpdev .output .repository .entity .MessageEntity ;
1316import 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 ;
1420import org .junit .jupiter .api .Test ;
1521
1622class 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" ))
0 commit comments