94 lines
2.6 KiB
Java
94 lines
2.6 KiB
Java
package de.nclazz.service.mailrelay.domain;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import static org.mockito.Mockito.mock;
|
|
import static org.mockito.Mockito.verify;
|
|
|
|
class ForwardMessageTest {
|
|
|
|
@Test
|
|
void relayForwardsMessageToCorrectAccountByToken() {
|
|
String token = "my-token";
|
|
Account account = new Account(
|
|
UUID.randomUUID(),
|
|
"company-invoices",
|
|
token,
|
|
List.of("info@company.com")
|
|
);
|
|
|
|
Relay relay = TestRelayBuilder.builder().build();
|
|
relay.saveAccount(account);
|
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
Message message = Message.of(
|
|
"Urgent message",
|
|
"Please reply",
|
|
"vip@company.com",
|
|
now
|
|
);
|
|
|
|
relay.forwardMessage(token, message);
|
|
assertThat(account.getSentMessages())
|
|
.hasSize(1)
|
|
.containsExactly(message);
|
|
}
|
|
|
|
@Test
|
|
void relayDoesNotForwardMessageForWrongToken() {
|
|
String token = "my-token";
|
|
Account account = new Account(
|
|
UUID.randomUUID(),
|
|
"company-invoices",
|
|
token,
|
|
List.of("info@company.com")
|
|
);
|
|
|
|
Relay relay = TestRelayBuilder.builder().build();
|
|
relay.saveAccount(account);
|
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
Message message = Message.of(
|
|
"Urgent message",
|
|
"Please reply",
|
|
"vip@company.com",
|
|
now
|
|
);
|
|
|
|
relay.forwardMessage("wrong-token", message);
|
|
assertThat(account.getSentMessages())
|
|
.isEmpty();
|
|
}
|
|
|
|
@Test
|
|
void forwardMessageShouldCauseMessageForwarderToBeInvoked() {
|
|
MessageForwarder forwarder = mock(MessageForwarder.class);
|
|
String token = "my-token";
|
|
Account account = new Account(
|
|
UUID.randomUUID(),
|
|
"company-invoices",
|
|
token,
|
|
List.of("info@company.com")
|
|
);
|
|
|
|
Relay relay = TestRelayBuilder.builder().build();
|
|
relay.saveAccount(account);
|
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
Message message = Message.of(
|
|
"Urgent message",
|
|
"Please reply",
|
|
"vip@company.com",
|
|
now
|
|
);
|
|
|
|
relay.forwardMessage(token, message);
|
|
|
|
verify(forwarder).forwardMessage("Urgent message", "Please reply", "vip@company.com", List.of("info@company.com"));
|
|
}
|
|
} |