private void reply(final List<Message> messages) { final ReplyEvent replyEvent = (ReplyEvent) originalEvent; lineMessagingClient.replyMessage(new ReplyMessage(replyEvent.getReplyToken(), messages)) .whenComplete(this::logging); // DO NOT BLOCK HERE, otherwise, next message processing will be BLOCKED. }
private void reply(final List<Message> messages) { final ReplyEvent replyEvent = (ReplyEvent) originalEvent; lineMessagingClient.replyMessage(new ReplyMessage(replyEvent.getReplyToken(), messages)) .whenComplete(this::logging); // DO NOT BLOCK HERE, otherwise, next message processing will be BLOCKED. }
@Before public void setUp() { target = targetFactory.createForEvent(EVENT); when(lineMessagingClient.replyMessage(any())) .thenReturn(CompletableFuture.completedFuture(new BotApiResponse("success", null))); }
@Test public void errorInLineMessagingClientLoggingTest() { reset(lineMessagingClient); when(lineMessagingClient.replyMessage(any())) .thenReturn(new CompletableFuture<BotApiResponse>() {{ completeExceptionally(new GeneralLineMessagingException("EXCEPTION HAPPEN!", null, null)); }}); // Do final CompletableFuture<List<TextMessage>> returnValue = new CompletableFuture<>(); target.accept(returnValue); returnValue.complete(singletonList(new TextMessage("Reply Text"))); // Verify assertThat(systemOut.getLogWithNormalizedLineSeparator()) .contains("failed") .contains("EXCEPTION HAPPEN!"); }
@Test public void acceptCompletableListReplyTest() throws Exception { // Do final CompletableFuture<List<TextMessage>> returnValue = new CompletableFuture<>(); target.accept(returnValue); returnValue.complete(singletonList(new TextMessage("Reply Text"))); // Verify verify(lineMessagingClient, only()) .replyMessage(new ReplyMessage(EVENT.getReplyToken(), singletonList(new TextMessage("Reply Text")))); }
@Test public void acceptCompletableSingleReplyTest() throws Exception { // Do final CompletableFuture<TextMessage> returnValue = new CompletableFuture<>(); target.accept(returnValue); returnValue.complete(new TextMessage("Reply Text")); // Verify verify(lineMessagingClient, only()) .replyMessage(new ReplyMessage(EVENT.getReplyToken(), singletonList(new TextMessage("Reply Text")))); }
@Test public void acceptListReplyTest() throws Exception { // Do target.accept(singletonList(new TextMessage("Reply Text"))); // Verify verify(lineMessagingClient, only()) .replyMessage(new ReplyMessage(EVENT.getReplyToken(), singletonList(new TextMessage("Reply Text")))); }
@Test public void acceptSingleReplyTest() throws Exception { // Do target.accept(new TextMessage("Reply Text")); // Verify verify(lineMessagingClient, only()) .replyMessage(new ReplyMessage(EVENT.getReplyToken(), singletonList(new TextMessage("Reply Text")))); }
private void handleEvent(Event event) throws Exception { if (event instanceof MessageEvent) { MessageContent content = ((MessageEvent) event).getMessage(); if (content instanceof TextMessageContent) { String text = ((TextMessageContent) content).getText(); lineMessagingClient.replyMessage( new ReplyMessage(((MessageEvent) event).getReplyToken(), new TextMessage(text))) .get(); } } else if (event instanceof FollowEvent) { lineMessagingClient.replyMessage( new ReplyMessage(((FollowEvent) event).getReplyToken(), new TextMessage("follow"))) .get(); } } }