private LexicalHandler mockLexicalHandler() throws Exception { LexicalHandler lexicalHandler = mock(LexicalHandler.class); willAnswer(new CopyCharsAnswer()).given(lexicalHandler).comment(any(char[].class), anyInt(), anyInt()); return lexicalHandler; }
protected TextMessage createTextMessage(MessageCreator creator) throws JMSException { Session mock = mock(Session.class); given(mock.createTextMessage(BDDMockito.any())).willAnswer( (Answer<TextMessage>) invocation -> new StubTextMessage((String) invocation.getArguments()[0])); javax.jms.Message message = creator.createMessage(mock); verify(mock).createTextMessage(BDDMockito.any()); return TextMessage.class.cast(message); }
@Test public void handleReturnTypeResourceIllegalByteRange() throws Exception { ResponseEntity<Resource> returnValue = ResponseEntity .ok(new ByteArrayResource("Content".getBytes(StandardCharsets.UTF_8))); servletRequest.addHeader("Range", "illegal"); given(resourceRegionMessageConverter.canWrite(any(), eq(null))).willReturn(true); given(resourceRegionMessageConverter.canWrite(any(), eq(APPLICATION_OCTET_STREAM))).willReturn(true); processor.handleReturnValue(returnValue, returnTypeResponseEntityResource, mavContainer, webRequest); then(resourceRegionMessageConverter).should(never()).write( anyCollection(), eq(APPLICATION_OCTET_STREAM), any(HttpOutputMessage.class)); assertEquals(416, servletResponse.getStatus()); }
@Test public void jsonView() throws Exception { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; Message<?> inputMessage = createMessage(sessionId, "sub1", "/app", "/dest", null); this.jsonHandler.handleReturnValue(handleAndSendToJsonView(), this.jsonViewReturnType, inputMessage); verify(this.messageChannel).send(this.messageCaptor.capture()); Message<?> message = this.messageCaptor.getValue(); assertNotNull(message); String bytes = new String((byte[]) message.getPayload(), StandardCharsets.UTF_8); assertEquals("{\"withView1\":\"with\"}", bytes); }
@Test public void responseClosedAfterDisconnected() throws Exception { String body = "o\n" + "c[3000,\"Go away!\"]\n" + "a[\"foo\"]\n"; ClientHttpResponse response = response(HttpStatus.OK, body); connect(response); verify(this.webSocketHandler).afterConnectionEstablished(any()); verify(this.webSocketHandler).afterConnectionClosed(any(), any()); verifyNoMoreInteractions(this.webSocketHandler); verify(response).close(); }
@Test // SPR-14238 public void sendToUserWithSendToDefaultOverride() throws Exception { given(this.messageChannel.send(any(Message.class))).willReturn(true); Class<?> clazz = SendToUserWithSendToOverrideTestBean.class; Method method = clazz.getDeclaredMethod("handleAndSendToDefaultDestination"); MethodParameter parameter = new SynthesizingMethodParameter(method, -1); String sessionId = "sess1"; Message<?> inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, parameter, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); assertResponse(parameter, sessionId, 0, "/user/sess1/dest-default"); }
private void invokeMessageCreator() { willAnswer(invocation -> { MessageCreator messageCreator = (MessageCreator) invocation.getArguments()[1]; messageCreator.createMessage(null); return null; }).given(this.jmsTemplate).send(eq("myQueue"), any()); }
@Test public void sendToClassDefaultNoAnnotation() throws Exception { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; Message<?> inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.defaultNoAnnotation, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); assertResponse(this.defaultNoAnnotation, sessionId, 0, "/dest-default"); }
@Test public void sendToClassDefaultEmptyAnnotation() throws Exception { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; Message<?> inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.defaultEmptyAnnotation, inputMessage); verify(this.messageChannel, times(1)).send(this.messageCaptor.capture()); assertResponse(this.defaultEmptyAnnotation, sessionId, 0, "/dest-default"); }
@Test public void sendTo() throws Exception { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; Message<?> inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.sendToReturnType, inputMessage); verify(this.messageChannel, times(2)).send(this.messageCaptor.capture()); assertResponse(this.sendToReturnType, sessionId, 0, "/dest1"); assertResponse(this.sendToReturnType, sessionId, 1, "/dest2"); }
@Test public void sendToUserClassDefaultOverride() throws Exception { given(this.messageChannel.send(any(Message.class))).willReturn(true); String sessionId = "sess1"; Message<?> inputMessage = createMessage(sessionId, "sub1", null, null, null); this.handler.handleReturnValue(PAYLOAD, this.userDefaultOverrideAnnotation, inputMessage); verify(this.messageChannel, times(2)).send(this.messageCaptor.capture()); assertResponse(this.userDefaultOverrideAnnotation, sessionId, 0, "/user/sess1/dest3"); assertResponse(this.userDefaultOverrideAnnotation, sessionId, 1, "/user/sess1/dest4"); }
@Test public void testWarn() throws Exception { Problem problem = new Problem("VGER", new Location(new DescriptiveResource("here")), null, new IllegalArgumentException()); Log log = mock(Log.class); FailFastProblemReporter reporter = new FailFastProblemReporter(); reporter.setLogger(log); reporter.warning(problem); verify(log).warn(any(), isA(IllegalArgumentException.class)); }
@Test public void sendAndReceive() { Destination destination = new Destination() {}; Message<String> request = createTextMessage(); javax.jms.Message replyJmsMessage = createJmsTextMessage(); given(this.jmsTemplate.sendAndReceive(eq(destination), any())).willReturn(replyJmsMessage); Message<?> actual = this.messagingTemplate.sendAndReceive(destination, request); verify(this.jmsTemplate, times(1)).sendAndReceive(eq(destination), any()); assertTextMessage(actual); }
@Test public void resolveArgumentViaDefaultConstructor() throws Exception { WebDataBinder dataBinder = new WebRequestDataBinder(null); WebDataBinderFactory factory = mock(WebDataBinderFactory.class); given(factory.createBinder(any(), notNull(), eq("attrName"))).willReturn(dataBinder); this.processor.resolveArgument(this.paramNamedValidModelAttr, this.container, this.request, factory); verify(factory).createBinder(any(), notNull(), eq("attrName")); }
@Test public void convertSendAndReceiveDefaultDestinationName() throws JMSException { this.messagingTemplate.setDefaultDestinationName("myQueue"); javax.jms.Message replyJmsMessage = createJmsTextMessage("My reply"); given(this.jmsTemplate.sendAndReceive(eq("myQueue"), any())).willReturn(replyJmsMessage); String reply = this.messagingTemplate.convertSendAndReceive("my Payload", String.class); verify(this.jmsTemplate, times(1)).sendAndReceive(eq("myQueue"), any()); assertEquals("My reply", reply); }
@Test public void convertDestinationResolutionExceptionOnSend() { Destination destination = new Destination() {}; willThrow(DestinationResolutionException.class).given(this.jmsTemplate).send(eq(destination), any()); this.thrown.expect(org.springframework.messaging.core.DestinationResolutionException.class); this.messagingTemplate.send(destination, createTextMessage()); }
@Test public void beforeAndAfterTestMethodForDirtiesContextDeclaredLocallyOnClassAfterClass() throws Exception { Class<?> clazz = DirtiesContextDeclaredLocallyAfterClass.class; BDDMockito.<Class<?>> given(testContext.getTestClass()).willReturn(clazz); given(testContext.getTestMethod()).willReturn(clazz.getDeclaredMethod("clean")); beforeListener.beforeTestMethod(testContext); afterListener.beforeTestMethod(testContext); afterListener.afterTestMethod(testContext); beforeListener.afterTestMethod(testContext); verify(testContext, times(0)).markApplicationContextDirty(any(HierarchyMode.class)); }
@Test public void onOpen() throws Throwable { URI uri = URI.create("http://example.org"); given(this.session.getRequestURI()).willReturn(uri); this.adapter.onOpen(this.session, null); verify(this.webSocketHandler).afterConnectionEstablished(this.webSocketSession); verify(this.session, atLeast(2)).addMessageHandler(any(MessageHandler.Whole.class)); given(this.session.getRequestURI()).willReturn(uri); assertEquals(uri, this.webSocketSession.getUri()); }
@Test public void convertMessageConversionExceptionOnSend() throws JMSException { Message<String> message = createTextMessage(); MessageConverter messageConverter = mock(MessageConverter.class); willThrow(org.springframework.jms.support.converter.MessageConversionException.class) .given(messageConverter).toMessage(eq(message), any()); this.messagingTemplate.setJmsMessageConverter(messageConverter); invokeMessageCreator(); this.thrown.expect(org.springframework.messaging.converter.MessageConversionException.class); this.messagingTemplate.send("myQueue", message); }
@Test public void beforeAndAfterTestMethodForDirtiesContextDeclaredLocallyOnClassAfterEachTestMethod() throws Exception { Class<?> clazz = DirtiesContextDeclaredLocallyAfterEachTestMethod.class; BDDMockito.<Class<?>> given(testContext.getTestClass()).willReturn(clazz); given(testContext.getTestMethod()).willReturn(clazz.getDeclaredMethod("clean")); beforeListener.beforeTestMethod(testContext); afterListener.beforeTestMethod(testContext); verify(testContext, times(0)).markApplicationContextDirty(any(HierarchyMode.class)); afterListener.afterTestMethod(testContext); beforeListener.afterTestMethod(testContext); verify(testContext, times(1)).markApplicationContextDirty(EXHAUSTIVE); }