@Test public void testCallRequest() throws Exception { InputStream resource = getClass().getClassLoader().getResourceAsStream("callback-request.json"); byte[] requestBody = ByteStreams.toByteArray(resource); MockHttpServletRequest request = new MockHttpServletRequest(); request.addHeader("X-Line-Signature", "SSSSIGNATURE"); request.setContent(requestBody); doReturn(true).when(lineSignatureValidator).validateSignature(requestBody, "SSSSIGNATURE"); CallbackRequest callbackRequest = lineBotCallbackRequestParser.handle(request); assertThat(callbackRequest).isNotNull(); final List<Event> result = callbackRequest.getEvents(); final MessageEvent messageEvent = (MessageEvent) result.get(0); final TextMessageContent text = (TextMessageContent) messageEvent.getMessage(); assertThat(text.getText()).isEqualTo("Hello, world"); final String followedUserId = messageEvent.getSource().getUserId(); assertThat(followedUserId).isEqualTo("u206d25c2ea6bd87c17655609a1c37cb8"); assertThat(messageEvent.getTimestamp()).isEqualTo(Instant.parse("2016-05-07T13:57:59.859Z")); }
@Test public void testCallRequest2() throws Exception { InputStream resource = getClass().getClassLoader().getResourceAsStream("callback-request.json"); byte[] requestBody = ByteStreams.toByteArray(resource); MockHttpServletRequest request = new MockHttpServletRequest(); request.addHeader("X-Line-Signature", "SSSSIGNATURE"); request.setContent(requestBody); doReturn(true).when(lineSignatureValidator).validateSignature(requestBody, "SSSSIGNATURE"); CallbackRequest callbackRequest = lineBotCallbackRequestParser .handle("SSSSIGNATURE", new String(requestBody, StandardCharsets.UTF_8)); assertThat(callbackRequest).isNotNull(); final List<Event> result = callbackRequest.getEvents(); final MessageEvent messageEvent = (MessageEvent) result.get(0); final TextMessageContent text = (TextMessageContent) messageEvent.getMessage(); assertThat(text.getText()).isEqualTo("Hello, world"); final String followedUserId = messageEvent.getSource().getUserId(); assertThat(followedUserId).isEqualTo("u206d25c2ea6bd87c17655609a1c37cb8"); assertThat(messageEvent.getTimestamp()).isEqualTo(Instant.parse("2016-05-07T13:57:59.859Z")); } }
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(); } } }