diff --git a/src/main/java/flab/quing/waiting/ConsoleLogMessageSender.java b/src/main/java/flab/quing/waiting/ConsoleLogMessageSender.java new file mode 100644 index 0000000..8348635 --- /dev/null +++ b/src/main/java/flab/quing/waiting/ConsoleLogMessageSender.java @@ -0,0 +1,16 @@ +package flab.quing.waiting; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class ConsoleLogMessageSender implements MessageSender { + + @Override + public boolean send(String phoneNumber, String message) { + log.info("phoneNumber = " + phoneNumber); + log.info("message = " + message); + return true; + } +} \ No newline at end of file diff --git a/src/main/java/flab/quing/waiting/MessageSender.java b/src/main/java/flab/quing/waiting/MessageSender.java new file mode 100644 index 0000000..688b24b --- /dev/null +++ b/src/main/java/flab/quing/waiting/MessageSender.java @@ -0,0 +1,7 @@ +package flab.quing.waiting; + +public interface MessageSender { + + boolean send(String phoneNumber, String message); + +} \ No newline at end of file diff --git a/src/main/java/flab/quing/waiting/QuingServiceImpl.java b/src/main/java/flab/quing/waiting/QuingServiceImpl.java index 9d787a6..37deb17 100644 --- a/src/main/java/flab/quing/waiting/QuingServiceImpl.java +++ b/src/main/java/flab/quing/waiting/QuingServiceImpl.java @@ -15,6 +15,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.text.MessageFormat; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; @@ -27,6 +28,7 @@ public class QuingServiceImpl implements QuingService { private final WaitingRepository waitingRepository; private final UserRepository userRepository; private final StoreRepository storeRepository; + private final MessageSender messageSender; @Override @Transactional @@ -36,7 +38,7 @@ public WaitingResponse append(WaitingRequest waitingRequest) { Waiting waiting = Waiting.of(user, store); Optional exist = waitingRepository.findByUserIdAndWaitingQueueStatusIs(user.getId(), WaitingQueueStatus.WAITING); - if(exist.isPresent()) { + if (exist.isPresent()) { throw new DuplicateWaitingException(); } Waiting save = waitingRepository.save(waiting); @@ -61,11 +63,10 @@ public int countForward(long waitingId) { @Override public void sendMessage(long waitingId, String message) { - //ncloud sms Waiting waiting = waitingRepository.findById(waitingId).orElseThrow(NoSuchWaitingException::new); User user = waiting.getUser(); - System.out.println("phoneNumber = " + user.getPhoneNumber()); - System.out.println("message = " + user.getName()+"님 "+message); + messageSender.send(user.getPhoneNumber(), + MessageFormat.format("{0} 님 {1}", user.getName(), message)); } @Override diff --git a/src/test/java/flab/quing/waiting/ConsoleLogMessageSenderTest.java b/src/test/java/flab/quing/waiting/ConsoleLogMessageSenderTest.java new file mode 100644 index 0000000..1fb6bb7 --- /dev/null +++ b/src/test/java/flab/quing/waiting/ConsoleLogMessageSenderTest.java @@ -0,0 +1,28 @@ +package flab.quing.waiting; + +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.boot.test.system.CapturedOutput; +import org.springframework.boot.test.system.OutputCaptureExtension; + +import static org.junit.jupiter.api.Assertions.*; + +@ExtendWith(OutputCaptureExtension.class) +class ConsoleLogMessageSenderTest { + + MessageSender messageSender; + + @BeforeEach + void beforeEach() { + messageSender = new ConsoleLogMessageSender(); + } + + @Test + void send(CapturedOutput output) { + messageSender.send("010-0000-0000", "hi test"); + + Assertions.assertThat(output).contains("test"); + } +} \ No newline at end of file diff --git a/src/test/java/flab/quing/waiting/QuingServiceImplTest.java b/src/test/java/flab/quing/waiting/QuingServiceImplTest.java index 03164f1..a766b73 100644 --- a/src/test/java/flab/quing/waiting/QuingServiceImplTest.java +++ b/src/test/java/flab/quing/waiting/QuingServiceImplTest.java @@ -44,6 +44,9 @@ class QuingServiceImplTest { @Mock WaitingRepository waitingRepository; + @Mock + ConsoleLogMessageSender messageSender; + @BeforeEach void beforeEach() { DummyDataMaker.init(); @@ -147,6 +150,7 @@ void sendMessage(CapturedOutput output) { Waiting waiting1 = DummyDataMaker.waiting(user1, store); when(waitingRepository.findById(1L)).thenReturn(Optional.of(waiting1)); + when(messageSender.send(any(),any())).thenCallRealMethod(); //when quingService.sendMessage(1L, "test"); @@ -163,6 +167,7 @@ void sendEnterMessage(CapturedOutput output) { Waiting waiting1 = DummyDataMaker.waiting(user1, store); when(waitingRepository.findById(1L)).thenReturn(Optional.of(waiting1)); + when(messageSender.send(any(),any())).thenCallRealMethod(); //when quingService.sendEnterMessage(1L); @@ -180,6 +185,7 @@ void sendRegisterMessage(CapturedOutput output) { Waiting waiting1 = DummyDataMaker.waiting(user1, store); when(waitingRepository.findById(1L)).thenReturn(Optional.of(waiting1)); + when(messageSender.send(any(),any())).thenCallRealMethod(); //when quingService.sendRegisterMessage(1L);