Migrate tests to AssertJ

Mostly thanks to IDEA's plugin: https://plugins.jetbrains.com/plugin/10345-assertions2assertj
There is still a lot of work to do when complex and composite matchers are used.

* Add `awaitility` dependency and deprecate `EventuallyMatcher` in favor
of `awaitility`
* Remove Hamcrest from dependencies and disable JUnit & Hamcrest
static imports to encourage to use only AssertJ
* Migrate JUnit assumptions in rules to AssertJ's assumptions
* Deprecate some custom matchers in favor of existing in Hamcrest
after upgrading the last to version `2.1`
* Replace `ExpectedException` rules with `assertThatThrownBy()`
* Mention `MessagePredicate` in the `testing.adoc`
This commit is contained in:
Artem Bilan
2019-02-20 12:28:44 -05:00
parent b62c2a8fb3
commit 622d42c71a
916 changed files with 19714 additions and 21769 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,13 +16,7 @@
package org.springframework.integration.ws;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -66,7 +60,7 @@ public class DefaultSoapHeaderMapperTests {
DefaultSoapHeaderMapper mapper = new DefaultSoapHeaderMapper();
SoapMessage soapMessage = mock(SoapMessage.class);
Map<String, Object> headers = mapper.toHeadersFromReply(soapMessage);
assertEquals(0, headers.size());
assertThat(headers.size()).isEqualTo(0);
}
@Test
@@ -94,9 +88,9 @@ public class DefaultSoapHeaderMapperTests {
when(soapHeaderElement.getName()).thenReturn(element);
Map<String, Object> headers = mapper.toHeadersFromReply(soapMessage);
assertEquals(2, headers.size());
assertEquals("attrValue", headers.get("x:attr"));
assertSame(soapHeaderElement, headers.get("x:elem"));
assertThat(headers.size()).isEqualTo(2);
assertThat(headers.get("x:attr")).isEqualTo("attrValue");
assertThat(headers.get("x:elem")).isSameAs(soapHeaderElement);
}
@Test
@@ -123,26 +117,26 @@ public class DefaultSoapHeaderMapperTests {
String authHeader = "auth";
mapper.setRequestHeaderNames(authHeader, "ba*");
Map<String, Object> headers = mapper.toHeadersFromRequest(soapMessage);
assertNotNull(headers.get(authHeader));
assertThat(headers.get(authHeader), instanceOf(SoapHeaderElement.class));
assertThat(headers.get(authHeader)).isNotNull();
assertThat(headers.get(authHeader)).isInstanceOf(SoapHeaderElement.class);
SoapHeaderElement header = (SoapHeaderElement) headers.get(authHeader);
DOMSource source = (DOMSource) header.getSource();
NodeList nodeList = source.getNode().getChildNodes();
assertEquals("username", nodeList.item(0).getNodeName());
assertEquals("user", nodeList.item(0).getFirstChild().getNodeValue());
assertEquals("password", nodeList.item(1).getNodeName());
assertEquals("pass", nodeList.item(1).getFirstChild().getNodeValue());
assertThat(nodeList.item(0).getNodeName()).isEqualTo("username");
assertThat(nodeList.item(0).getFirstChild().getNodeValue()).isEqualTo("user");
assertThat(nodeList.item(1).getNodeName()).isEqualTo("password");
assertThat(nodeList.item(1).getFirstChild().getNodeValue()).isEqualTo("pass");
header = (SoapHeaderElement) headers.get("bar");
assertNotNull(header);
assertThat(header).isNotNull();
source = (DOMSource) header.getSource();
nodeList = source.getNode().getChildNodes();
assertEquals("BAR", nodeList.item(0).getNodeValue());
assertThat(nodeList.item(0).getNodeValue()).isEqualTo("BAR");
header = (SoapHeaderElement) headers.get("baz");
assertNotNull(header);
assertThat(header).isNotNull();
source = (DOMSource) header.getSource();
nodeList = source.getNode().getChildNodes();
assertEquals("BAZ", nodeList.item(0).getNodeValue());
assertNull(headers.get("qux"));
assertThat(nodeList.item(0).getNodeValue()).isEqualTo("BAZ");
assertThat(headers.get("qux")).isNull();
}
@Test
@@ -151,7 +145,7 @@ public class DefaultSoapHeaderMapperTests {
SoapMessage soapMessage = mock(SoapMessage.class);
when(soapMessage.getSoapAction()).thenReturn(null);
assertTrue(mapper.extractStandardHeaders(soapMessage).isEmpty());
assertThat(mapper.extractStandardHeaders(soapMessage).isEmpty()).isTrue();
}
@Test
@@ -160,7 +154,7 @@ public class DefaultSoapHeaderMapperTests {
SoapMessage soapMessage = mock(SoapMessage.class);
when(soapMessage.getSoapAction()).thenReturn("");
assertTrue(mapper.extractStandardHeaders(soapMessage).isEmpty());
assertThat(mapper.extractStandardHeaders(soapMessage).isEmpty()).isTrue();
}
@Test
@@ -171,9 +165,9 @@ public class DefaultSoapHeaderMapperTests {
Map<String, Object> standardHeaders = mapper.toHeadersFromRequest(soapMessage);
assertEquals(1, standardHeaders.size());
assertTrue(standardHeaders.containsKey(WebServiceHeaders.SOAP_ACTION));
assertEquals("foo", standardHeaders.get(WebServiceHeaders.SOAP_ACTION));
assertThat(standardHeaders.size()).isEqualTo(1);
assertThat(standardHeaders.containsKey(WebServiceHeaders.SOAP_ACTION)).isTrue();
assertThat(standardHeaders.get(WebServiceHeaders.SOAP_ACTION)).isEqualTo("foo");
}
@Test
@@ -199,27 +193,27 @@ public class DefaultSoapHeaderMapperTests {
mapper.fromHeadersToReply(new MessageHeaders(headers), message);
SoapHeader soapHeader = message.getSoapHeader();
assertEquals("bar", soapHeader.getAttributeValue(QNameUtils.parseQNameString("foo")));
assertThat(soapHeader.getAttributeValue(QNameUtils.parseQNameString("foo"))).isEqualTo("bar");
Iterator<SoapHeaderElement> authIterator =
soapHeader.examineHeaderElements(QNameUtils.parseQNameString("{http://test.auth.org}auth"));
assertTrue(authIterator.hasNext());
assertThat(authIterator.hasNext()).isTrue();
SoapHeaderElement auth = authIterator.next();
DOMSource authSource = (DOMSource) auth.getSource();
NodeList nodeList = authSource.getNode().getChildNodes();
assertEquals("username", nodeList.item(0).getNodeName());
assertEquals("user", nodeList.item(0).getFirstChild().getNodeValue());
assertThat(nodeList.item(0).getNodeName()).isEqualTo("username");
assertThat(nodeList.item(0).getFirstChild().getNodeValue()).isEqualTo("user");
assertEquals("password", nodeList.item(1).getNodeName());
assertEquals("pass", nodeList.item(1).getFirstChild().getNodeValue());
assertThat(nodeList.item(1).getNodeName()).isEqualTo("password");
assertThat(nodeList.item(1).getFirstChild().getNodeValue()).isEqualTo("pass");
Iterator<SoapHeaderElement> testIterator =
soapHeader.examineHeaderElements(QNameUtils.parseQNameString("{http://test.org}test"));
assertTrue(testIterator.hasNext());
assertThat(testIterator.hasNext()).isTrue();
/*StringResult stringResult = new StringResult();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
@@ -249,7 +243,7 @@ public class DefaultSoapHeaderMapperTests {
headerMapper.fromHeadersToRequest(new MessageHeaders(null), soapMessage);
assertEquals(testSoapAction, soapMessage.getSoapAction());
assertThat(soapMessage.getSoapAction()).isEqualTo(testSoapAction);
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
package org.springframework.integration.ws;
import static org.junit.Assert.assertTrue;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import java.io.IOException;
@@ -95,7 +95,7 @@ public class MarshallingWebServiceIntegrationTests {
when(request.getPayloadSource()).thenReturn(stringSource);
when(response.getPayloadResult()).thenReturn(stringResult);
gateway.invoke(context);
assertTrue(output.toString().endsWith(input));
assertThat(output.toString().endsWith(input)).isTrue();
}
public static class StubMarshaller implements Marshaller, Unmarshaller {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
package org.springframework.integration.ws;
import static org.junit.Assert.assertTrue;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
@@ -33,13 +33,10 @@ import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.internal.hamcrest.HamcrestArgumentMatcher;
import org.mockito.junit.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
@@ -100,8 +97,8 @@ public class SimpleWebServiceInboundGatewayTests {
when(request.getPayloadSource()).thenReturn(payloadSource);
gateway.start();
gateway.invoke(context);
verify(requestChannel).send(messageWithPayload(payloadSource), eq(1000L));
assertTrue(output.toString().endsWith(input));
verify(requestChannel).send(argThat(m -> m.getPayload().equals(payloadSource)), eq(1000L));
assertThat(output.toString().endsWith(input)).isTrue();
}
@Test(expected = MessageDeliveryException.class)
@@ -114,22 +111,6 @@ public class SimpleWebServiceInboundGatewayTests {
}
private Message<?> messageWithPayload(final Object payload) {
return argThat(new HamcrestArgumentMatcher<>(new BaseMatcher<Message<?>>() {
@Override
public boolean matches(Object candidate) {
return ((Message<?>) candidate).getPayload().equals(payload);
}
@Override
public void describeTo(Description description) {
description.appendText("A message with payload: " + payload);
}
}));
}
private Answer<Boolean> withReplyTo(final MessageChannel replyChannel) {
return invocation -> {
replyChannel.send((Message<?>) invocation.getArguments()[0]);

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,11 +16,8 @@
package org.springframework.integration.ws;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.fail;
import static org.mockito.Mockito.mock;
import java.io.ByteArrayInputStream;
@@ -34,7 +31,6 @@ import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import org.hamcrest.Matchers;
import org.junit.Test;
import org.mockito.Mockito;
@@ -113,8 +109,8 @@ public class SimpleWebServiceOutboundGatewayTests {
catch (MessageHandlingException e) {
// expected
}
assertNotNull(soapActionFromCallback.get());
assertEquals("\"" + soapActionHeaderValue + "\"", soapActionFromCallback.get());
assertThat(soapActionFromCallback.get()).isNotNull();
assertThat(soapActionFromCallback.get()).isEqualTo("\"" + soapActionHeaderValue + "\"");
}
@@ -126,7 +122,7 @@ public class SimpleWebServiceOutboundGatewayTests {
channel.send(MessageBuilder.withPayload("<test>foo</test>").build());
PollableChannel replyChannel = context.getBean("replyChannel", PollableChannel.class);
Message<?> replyMessage = replyChannel.receive();
assertThat(replyMessage.getPayload().toString(), Matchers.endsWith(response));
assertThat(replyMessage.getPayload().toString()).endsWith(response);
context.close();
}
@@ -181,21 +177,22 @@ public class SimpleWebServiceOutboundGatewayTests {
WebServiceMessage requestMessage = requestFuture.get(10, TimeUnit.SECONDS);
assertNotNull(requestMessage);
assertThat(requestMessage, instanceOf(MimeMessage.class));
assertThat(requestMessage).isNotNull();
assertThat(requestMessage).isInstanceOf(MimeMessage.class);
transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
StringResult stringResult = new StringResult();
transformer.transform(requestMessage.getPayloadSource(), stringResult);
assertEquals(request, stringResult.toString());
assertThat(stringResult.toString()).isEqualTo(request);
Attachment myAttachment = ((MimeMessage) requestMessage).getAttachment("myAttachment");
assertNotNull(myAttachment);
assertEquals("text/plain", myAttachment.getContentType());
assertEquals("my_data", FileCopyUtils.copyToString(new InputStreamReader(myAttachment.getInputStream())));
assertThat(myAttachment).isNotNull();
assertThat(myAttachment.getContentType()).isEqualTo("text/plain");
assertThat(FileCopyUtils.copyToString(new InputStreamReader(myAttachment.getInputStream())))
.isEqualTo("my_data");
}
@Test
@@ -230,8 +227,8 @@ public class SimpleWebServiceOutboundGatewayTests {
WebServiceMessage requestMessage = requestFuture.get(10, TimeUnit.SECONDS);
assertNotNull(requestMessage);
assertThat(requestMessage, instanceOf(PoxMessage.class));
assertThat(requestMessage).isNotNull();
assertThat(requestMessage).isInstanceOf(PoxMessage.class);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
@@ -240,7 +237,7 @@ public class SimpleWebServiceOutboundGatewayTests {
StringResult stringResult = new StringResult();
transformer.transform(requestMessage.getPayloadSource(), stringResult);
assertEquals(request, stringResult.toString());
assertThat(stringResult.toString()).isEqualTo(request);
}
public static WebServiceMessageSender createMockMessageSender(final String mockResponseMessage) throws Exception {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2016-2017 the original author or authors.
* Copyright 2016-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,11 +16,7 @@
package org.springframework.integration.ws;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
@@ -114,7 +110,7 @@ public class WebServiceInboundGatewayJavaConfigTests {
this.messageReceiver.receive(context);
assertTrue(output.toString().endsWith(input));
assertThat(output.toString().endsWith(input)).isTrue();
context = mock(MessageContext.class);
@@ -128,10 +124,10 @@ public class WebServiceInboundGatewayJavaConfigTests {
this.messageReceiver.receive(context);
Message<?> receive = this.webserviceRequestsQueue.receive(10000);
assertNotNull(receive);
assertThat(receive.getPayload(), instanceOf(Element.class));
assertThat(receive).isNotNull();
assertThat(receive.getPayload()).isInstanceOf(Element.class);
Element order = (Element) receive.getPayload();
assertEquals("order", order.getLocalName());
assertThat(order.getLocalName()).isEqualTo("order");
}
@Configuration

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,9 +16,7 @@
package org.springframework.integration.ws.config;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -53,31 +51,31 @@ public class DefaultConfigurationTests {
@Test
public void verifyErrorChannel() {
Object errorChannel = context.getBean("errorChannel");
assertNotNull(errorChannel);
assertEquals(PublishSubscribeChannel.class, errorChannel.getClass());
assertThat(errorChannel).isNotNull();
assertThat(errorChannel.getClass()).isEqualTo(PublishSubscribeChannel.class);
}
@Test
public void verifyNullChannel() {
Object nullChannel = context.getBean("nullChannel");
assertNotNull(nullChannel);
assertEquals(NullChannel.class, nullChannel.getClass());
assertThat(nullChannel).isNotNull();
assertThat(nullChannel.getClass()).isEqualTo(NullChannel.class);
}
@Test
public void verifyTaskScheduler() {
Object taskScheduler = context.getBean(IntegrationContextUtils.TASK_SCHEDULER_BEAN_NAME);
assertEquals(ThreadPoolTaskScheduler.class, taskScheduler.getClass());
assertThat(taskScheduler.getClass()).isEqualTo(ThreadPoolTaskScheduler.class);
ErrorHandler errorHandler = TestUtils.getPropertyValue(taskScheduler, "errorHandler", ErrorHandler.class);
assertEquals(MessagePublishingErrorHandler.class, errorHandler.getClass());
assertThat(errorHandler.getClass()).isEqualTo(MessagePublishingErrorHandler.class);
MessageChannel defaultErrorChannel = TestUtils.getPropertyValue(errorHandler,
"messagingTemplate.defaultDestination", MessageChannel.class);
assertNull(defaultErrorChannel);
assertThat(defaultErrorChannel).isNull();
errorHandler.handleError(new Throwable());
defaultErrorChannel = TestUtils.getPropertyValue(errorHandler, "messagingTemplate.defaultDestination",
MessageChannel.class);
assertNotNull(defaultErrorChannel);
assertEquals(context.getBean(IntegrationContextUtils.ERROR_CHANNEL_BEAN_NAME), defaultErrorChannel);
assertThat(defaultErrorChannel).isNotNull();
assertThat(defaultErrorChannel).isEqualTo(context.getBean(IntegrationContextUtils.ERROR_CHANNEL_BEAN_NAME));
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,9 +16,8 @@
package org.springframework.integration.ws.config;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.mockito.BDDMockito.willThrow;
import static org.mockito.Mockito.doAnswer;
@@ -36,7 +35,6 @@ import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import org.hamcrest.Matchers;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.packet.Stanza;
import org.junit.Test;
@@ -131,14 +129,10 @@ public class UriVariableTests {
.setHeader("x", "integration")
.setHeader("param", "test1 & test2")
.build();
try {
this.inputHttp.send(message);
}
catch (MessageHandlingException e) {
// expected
assertThat(e.getCause(), Matchers.is(Matchers.instanceOf(WebServiceIOException.class))); // offline
}
assertEquals("http://localhost/spring-integration?param=test1%20&%20test2", uri.get());
assertThatThrownBy(() -> this.inputHttp.send(message))
.hasCauseInstanceOf(WebServiceIOException.class); // offline
assertThat(uri.get()).isEqualTo("http://localhost/spring-integration?param=test1%20&%20test2");
}
@Test
@@ -173,14 +167,14 @@ public class UriVariableTests {
catch (MessageHandlingException e) {
// expected
Class<?> causeType = e.getCause().getClass();
assertTrue(WebServiceIOException.class.equals(causeType)); // offline
assertThat(WebServiceIOException.class.equals(causeType)).isTrue(); // offline
}
URI uri = URI.create("jms:SPRING.INTEGRATION.QUEUE?deliveryMode=NON_PERSISTENT&priority=5");
Mockito.verify(this.jmsMessageSender).createConnection(uri);
Mockito.verify(session).createQueue(destinationName);
assertEquals("jms:" + destinationName, this.interceptor.getLastUri().toString());
assertThat(this.interceptor.getLastUri().toString()).isEqualTo("jms:" + destinationName);
Mockito.verify(producer).setDeliveryMode(DeliveryMode.NON_PERSISTENT);
Mockito.verify(producer).setPriority(5);
}
@@ -199,12 +193,13 @@ public class UriVariableTests {
catch (MessageHandlingException e) {
// expected
Class<?> causeType = e.getCause().getClass();
assertTrue(WebServiceIOException.class.equals(causeType)); // offline
assertThat(WebServiceIOException.class.equals(causeType)).isTrue(); // offline
}
WebServiceConnection webServiceConnection = this.emailInterceptor.getLastWebServiceConnection();
assertEquals(testEmailTo, TestUtils.getPropertyValue(webServiceConnection, "to").toString());
assertEquals(testEmailSubject, TestUtils.getPropertyValue(webServiceConnection, "subject"));
assertEquals("mailto:user@example.com?subject=Test%20subject", this.emailInterceptor.getLastUri().toString());
assertThat(TestUtils.getPropertyValue(webServiceConnection, "to").toString()).isEqualTo(testEmailTo);
assertThat(TestUtils.getPropertyValue(webServiceConnection, "subject")).isEqualTo(testEmailSubject);
assertThat(this.emailInterceptor.getLastUri().toString())
.isEqualTo("mailto:user@example.com?subject=Test%20subject");
}
@Test
@@ -220,14 +215,14 @@ public class UriVariableTests {
catch (MessageHandlingException e) {
// expected
Class<?> causeType = e.getCause().getClass();
assertTrue(WebServiceIOException.class.equals(causeType)); // offline
assertThat(WebServiceIOException.class.equals(causeType)).isTrue(); // offline
}
ArgumentCaptor<Stanza> argument = ArgumentCaptor.forClass(Stanza.class);
Mockito.verify(this.xmppConnection).sendStanza(argument.capture());
assertEquals("user@jabber.org", argument.getValue().getTo().toString());
assertThat(argument.getValue().getTo().toString()).isEqualTo("user@jabber.org");
assertEquals("xmpp:user@jabber.org", this.interceptor.getLastUri().toString());
assertThat(this.interceptor.getLastUri().toString()).isEqualTo("xmpp:user@jabber.org");
}
private static class TestClientInterceptor implements ClientInterceptor {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
package org.springframework.integration.ws.config;
import static org.junit.Assert.assertEquals;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Map;
@@ -59,7 +59,7 @@ public class WebServiceHeaderEnricherTests {
template.setDefaultDestination(literalValueInput);
Message<?> result = template.sendAndReceive(new GenericMessage<>("foo"));
Map<String, Object> headers = result.getHeaders();
assertEquals("http://test", headers.get(WebServiceHeaders.SOAP_ACTION));
assertThat(headers.get(WebServiceHeaders.SOAP_ACTION)).isEqualTo("http://test");
}
@Test
@@ -68,7 +68,7 @@ public class WebServiceHeaderEnricherTests {
template.setDefaultDestination(expressionInput);
Message<?> result = template.sendAndReceive(new GenericMessage<>("foo"));
Map<String, Object> headers = result.getHeaders();
assertEquals("http://foo", headers.get(WebServiceHeaders.SOAP_ACTION));
assertThat(headers.get(WebServiceHeaders.SOAP_ACTION)).isEqualTo("http://foo");
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,13 +16,7 @@
package org.springframework.integration.ws.config;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -99,10 +93,10 @@ public class WebServiceInboundGatewayParserTests {
@Test
public void simpleGatewayProperties() {
assertSame(this.requestsVerySimple, this.simpleGateway.getRequestChannel());
assertSame(this.customErrorChannel, this.simpleGateway.getErrorChannel());
assertFalse(this.simpleGateway.isAutoStartup());
assertEquals(101, this.simpleGateway.getPhase());
assertThat(this.simpleGateway.getRequestChannel()).isSameAs(this.requestsVerySimple);
assertThat(this.simpleGateway.getErrorChannel()).isSameAs(this.customErrorChannel);
assertThat(this.simpleGateway.isAutoStartup()).isFalse();
assertThat(this.simpleGateway.getPhase()).isEqualTo(101);
}
//extractPayload = false
@@ -114,30 +108,29 @@ public class WebServiceInboundGatewayParserTests {
public void extractPayloadSet() {
DirectFieldAccessor accessor = new DirectFieldAccessor(
payloadExtractingGateway);
assertThat((Boolean) accessor.getPropertyValue("extractPayload"),
is(false));
assertThat((Boolean) accessor.getPropertyValue("extractPayload")).isFalse();
}
@Test
public void marshallersSet() {
DirectFieldAccessor accessor = new DirectFieldAccessor(marshallingGateway);
assertThat(accessor.getPropertyValue("marshaller"), is(marshaller));
assertThat(accessor.getPropertyValue("unmarshaller"), is(marshaller));
assertThat(accessor.getPropertyValue("marshaller")).isEqualTo(marshaller);
assertThat(accessor.getPropertyValue("unmarshaller")).isEqualTo(marshaller);
assertTrue("messaging gateway is not running", this.marshallingGateway.isRunning());
assertThat(this.marshallingGateway.isRunning()).as("messaging gateway is not running").isTrue();
assertSame(this.customErrorChannel, this.marshallingGateway.getErrorChannel());
assertThat(this.marshallingGateway.getErrorChannel()).isSameAs(this.customErrorChannel);
AbstractHeaderMapper.HeaderMatcher requestHeaderMatcher = TestUtils.getPropertyValue(marshallingGateway,
"headerMapper.requestHeaderMatcher", AbstractHeaderMapper.HeaderMatcher.class);
assertTrue(requestHeaderMatcher.matchHeader("testRequest"));
assertFalse(requestHeaderMatcher.matchHeader("testReply"));
assertThat(requestHeaderMatcher.matchHeader("testRequest")).isTrue();
assertThat(requestHeaderMatcher.matchHeader("testReply")).isFalse();
AbstractHeaderMapper.HeaderMatcher replyHeaderMatcher = TestUtils.getPropertyValue(marshallingGateway,
"headerMapper.replyHeaderMatcher", AbstractHeaderMapper.HeaderMatcher.class);
assertFalse(replyHeaderMatcher.matchHeader("testRequest"));
assertTrue(replyHeaderMatcher.matchHeader("testReply"));
assertThat(replyHeaderMatcher.matchHeader("testRequest")).isFalse();
assertThat(replyHeaderMatcher.matchHeader("testReply")).isTrue();
}
@Test
@@ -149,10 +142,10 @@ public class WebServiceInboundGatewayParserTests {
marshallingGateway.invoke(context);
Message<?> message = requestsMarshalling.receive(100);
MessageHistory history = MessageHistory.read(message);
assertNotNull(history);
assertThat(history).isNotNull();
Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "marshalling", 0);
assertNotNull(componentHistoryRecord);
assertEquals("ws:inbound-gateway", componentHistoryRecord.get("type"));
assertThat(componentHistoryRecord).isNotNull();
assertThat(componentHistoryRecord.get("type")).isEqualTo("ws:inbound-gateway");
}
@Test
@@ -161,10 +154,10 @@ public class WebServiceInboundGatewayParserTests {
payloadExtractingGateway.invoke(context);
Message<?> message = requestsSimple.receive(100);
MessageHistory history = MessageHistory.read(message);
assertNotNull(history);
assertThat(history).isNotNull();
Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "extractsPayload", 0);
assertNotNull(componentHistoryRecord);
assertEquals("ws:inbound-gateway", componentHistoryRecord.get("type"));
assertThat(componentHistoryRecord).isNotNull();
assertThat(componentHistoryRecord.get("type")).isEqualTo("ws:inbound-gateway");
}
@Autowired
@@ -177,7 +170,7 @@ public class WebServiceInboundGatewayParserTests {
public void testHeaderMapperReference() {
DirectFieldAccessor accessor = new DirectFieldAccessor(headerMappingGateway);
Object headerMapper = accessor.getPropertyValue("headerMapper");
assertEquals(testHeaderMapper, headerMapper);
assertThat(headerMapper).isEqualTo(testHeaderMapper);
}
@Autowired
@@ -188,7 +181,7 @@ public class WebServiceInboundGatewayParserTests {
public void testReplyTimeout() {
DirectFieldAccessor accessor = new DirectFieldAccessor(replyTimeoutGateway);
Object replyTimeout = accessor.getPropertyValue("replyTimeout");
assertEquals(1234L, replyTimeout);
assertThat(replyTimeout).isEqualTo(1234L);
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,11 +16,7 @@
package org.springframework.integration.ws.config;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
@@ -28,7 +24,6 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentMatchers;
@@ -82,201 +77,205 @@ public class WebServiceOutboundGatewayParserTests {
@Test
public void simpleGatewayWithReplyChannel() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithReplyChannel", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
Object expected = this.context.getBean("outputChannel");
assertEquals(expected, accessor.getPropertyValue("outputChannel"));
Assert.assertEquals(Boolean.FALSE, accessor.getPropertyValue("requiresReply"));
assertThat(accessor.getPropertyValue("outputChannel")).isEqualTo(expected);
assertThat(accessor.getPropertyValue("requiresReply")).isEqualTo(Boolean.FALSE);
AbstractHeaderMapper.HeaderMatcher requestHeaderMatcher = TestUtils.getPropertyValue(endpoint,
"handler.headerMapper.requestHeaderMatcher", AbstractHeaderMapper.HeaderMatcher.class);
assertTrue(requestHeaderMatcher.matchHeader("testRequest"));
assertFalse(requestHeaderMatcher.matchHeader("testReply"));
assertThat(requestHeaderMatcher.matchHeader("testRequest")).isTrue();
assertThat(requestHeaderMatcher.matchHeader("testReply")).isFalse();
AbstractHeaderMapper.HeaderMatcher replyHeaderMatcher = TestUtils.getPropertyValue(endpoint,
"handler.headerMapper.replyHeaderMatcher", AbstractHeaderMapper.HeaderMatcher.class);
assertFalse(replyHeaderMatcher.matchHeader("testRequest"));
assertTrue(replyHeaderMatcher.matchHeader("testReply"));
assertThat(replyHeaderMatcher.matchHeader("testRequest")).isFalse();
assertThat(replyHeaderMatcher.matchHeader("testReply")).isTrue();
Long sendTimeout = TestUtils.getPropertyValue(gateway, "messagingTemplate.sendTimeout", Long.class);
assertEquals(Long.valueOf(777), sendTimeout);
assertThat(sendTimeout).isEqualTo(Long.valueOf(777));
assertSame(this.context.getBean("webServiceTemplate"),
TestUtils.getPropertyValue(gateway, "webServiceTemplate"));
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate"))
.isSameAs(this.context.getBean("webServiceTemplate"));
}
@Test
public void simpleGatewayWithIgnoreEmptyResponseTrueByDefault() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithReplyChannel", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
assertEquals(Boolean.TRUE, accessor.getPropertyValue("ignoreEmptyResponses"));
Assert.assertEquals(Boolean.FALSE, accessor.getPropertyValue("requiresReply"));
assertThat(accessor.getPropertyValue("ignoreEmptyResponses")).isEqualTo(Boolean.TRUE);
assertThat(accessor.getPropertyValue("requiresReply")).isEqualTo(Boolean.FALSE);
}
@Test
public void simpleGatewayWithIgnoreEmptyResponses() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithIgnoreEmptyResponsesFalseAndRequiresReplyTrue",
AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
assertEquals(Boolean.FALSE, accessor.getPropertyValue("ignoreEmptyResponses"));
assertEquals(Boolean.TRUE, accessor.getPropertyValue("requiresReply"));
assertEquals(Boolean.FALSE, accessor.getPropertyValue("extractPayload"));
assertThat(accessor.getPropertyValue("ignoreEmptyResponses")).isEqualTo(Boolean.FALSE);
assertThat(accessor.getPropertyValue("requiresReply")).isEqualTo(Boolean.TRUE);
assertThat(accessor.getPropertyValue("extractPayload")).isEqualTo(Boolean.FALSE);
}
@Test
public void simpleGatewayWithDefaultSourceExtractor() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithDefaultSourceExtractor", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
assertEquals("DefaultSourceExtractor", accessor.getPropertyValue("sourceExtractor").getClass().getSimpleName());
assertThat(accessor.getPropertyValue("sourceExtractor").getClass().getSimpleName())
.isEqualTo("DefaultSourceExtractor");
}
@Test
public void simpleGatewayWithCustomSourceExtractor() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithCustomSourceExtractor", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
SourceExtractor<?> sourceExtractor = (SourceExtractor<?>) context.getBean("sourceExtractor");
assertEquals(sourceExtractor, accessor.getPropertyValue("sourceExtractor"));
assertThat(accessor.getPropertyValue("sourceExtractor")).isEqualTo(sourceExtractor);
}
@Test
public void simpleGatewayWithCustomRequestCallback() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithCustomRequestCallback", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
WebServiceMessageCallback callback = (WebServiceMessageCallback) context.getBean("requestCallback");
assertEquals(callback, accessor.getPropertyValue("requestCallback"));
assertThat(accessor.getPropertyValue("requestCallback")).isEqualTo(callback);
}
@Test
public void simpleGatewayWithCustomMessageFactory() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithCustomMessageFactory", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
accessor = new DirectFieldAccessor(accessor.getPropertyValue("webServiceTemplate"));
WebServiceMessageFactory factory = (WebServiceMessageFactory) context.getBean("messageFactory");
assertEquals(factory, accessor.getPropertyValue("messageFactory"));
assertThat(accessor.getPropertyValue("messageFactory")).isEqualTo(factory);
}
@Test
public void simpleGatewayWithCustomSourceExtractorAndMessageFactory() {
AbstractEndpoint endpoint = context.getBean("gatewayWithCustomSourceExtractorAndMessageFactory", AbstractEndpoint.class);
SourceExtractor<?> sourceExtractor = (SourceExtractor<?>) context.getBean("sourceExtractor");
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
assertEquals(sourceExtractor, accessor.getPropertyValue("sourceExtractor"));
assertThat(accessor.getPropertyValue("sourceExtractor")).isEqualTo(sourceExtractor);
accessor = new DirectFieldAccessor(accessor.getPropertyValue("webServiceTemplate"));
WebServiceMessageFactory factory = (WebServiceMessageFactory) context.getBean("messageFactory");
assertEquals(factory, accessor.getPropertyValue("messageFactory"));
assertThat(accessor.getPropertyValue("messageFactory")).isEqualTo(factory);
}
@Test
public void simpleGatewayWithCustomFaultMessageResolver() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithCustomFaultMessageResolver", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
accessor = new DirectFieldAccessor(accessor.getPropertyValue("webServiceTemplate"));
FaultMessageResolver resolver = (FaultMessageResolver) context.getBean("faultMessageResolver");
assertEquals(resolver, accessor.getPropertyValue("faultMessageResolver"));
assertThat(accessor.getPropertyValue("faultMessageResolver")).isEqualTo(resolver);
}
@Test
public void simpleGatewayWithCustomMessageSender() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithCustomMessageSender", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
accessor = new DirectFieldAccessor(accessor.getPropertyValue("webServiceTemplate"));
WebServiceMessageSender messageSender = (WebServiceMessageSender) context.getBean("messageSender");
assertEquals(messageSender, ((WebServiceMessageSender[]) accessor.getPropertyValue("messageSenders"))[0]);
assertThat(((WebServiceMessageSender[]) accessor.getPropertyValue("messageSenders"))[0])
.isEqualTo(messageSender);
}
@Test
public void simpleGatewayWithCustomMessageSenderList() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithCustomMessageSenderList", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
accessor = new DirectFieldAccessor(accessor.getPropertyValue("webServiceTemplate"));
WebServiceMessageSender messageSender = (WebServiceMessageSender) context.getBean("messageSender");
assertEquals(messageSender, ((WebServiceMessageSender[]) accessor.getPropertyValue("messageSenders"))[0]);
assertEquals("Wrong number of message senders ",
2, ((WebServiceMessageSender[]) accessor.getPropertyValue("messageSenders")).length);
assertThat(((WebServiceMessageSender[]) accessor.getPropertyValue("messageSenders"))[0])
.isEqualTo(messageSender);
assertThat(((WebServiceMessageSender[]) accessor.getPropertyValue("messageSenders")).length)
.as("Wrong number of message senders ").isEqualTo(2);
}
@Test
public void simpleGatewayWithCustomInterceptor() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithCustomInterceptor", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
accessor = new DirectFieldAccessor(accessor.getPropertyValue("webServiceTemplate"));
ClientInterceptor interceptor = context.getBean("interceptor", ClientInterceptor.class);
assertEquals(interceptor, ((ClientInterceptor[]) accessor.getPropertyValue("interceptors"))[0]);
assertThat(((ClientInterceptor[]) accessor.getPropertyValue("interceptors"))[0]).isEqualTo(interceptor);
}
@Test
public void simpleGatewayWithCustomInterceptorList() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithCustomInterceptorList", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
accessor = new DirectFieldAccessor(accessor.getPropertyValue("webServiceTemplate"));
ClientInterceptor interceptor = context.getBean("interceptor", ClientInterceptor.class);
assertEquals(interceptor, ((ClientInterceptor[]) accessor.getPropertyValue("interceptors"))[0]);
assertEquals("Wrong number of interceptors ",
2, ((ClientInterceptor[]) accessor.getPropertyValue("interceptors")).length);
assertThat(((ClientInterceptor[]) accessor.getPropertyValue("interceptors"))[0]).isEqualTo(interceptor);
assertThat(((ClientInterceptor[]) accessor.getPropertyValue("interceptors")).length)
.as("Wrong number of interceptors ").isEqualTo(2);
}
@Test
public void simpleGatewayWithPoller() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithPoller", AbstractEndpoint.class);
assertEquals(PollingConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(PollingConsumer.class);
Object triggerObject = new DirectFieldAccessor(endpoint).getPropertyValue("trigger");
assertEquals(PeriodicTrigger.class, triggerObject.getClass());
assertThat(triggerObject.getClass()).isEqualTo(PeriodicTrigger.class);
PeriodicTrigger trigger = (PeriodicTrigger) triggerObject;
DirectFieldAccessor accessor = new DirectFieldAccessor(trigger);
assertEquals("PeriodicTrigger had wrong period",
5000, ((Long) accessor.getPropertyValue("period")).longValue());
assertThat(((Long) accessor.getPropertyValue("period")).longValue()).as("PeriodicTrigger had wrong period")
.isEqualTo(5000);
}
@Test
public void simpleGatewayWithOrder() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithOrderAndAutoStartupFalse", AbstractEndpoint.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
assertEquals(99, new DirectFieldAccessor(gateway).getPropertyValue("order"));
assertThat(new DirectFieldAccessor(gateway).getPropertyValue("order")).isEqualTo(99);
}
@Test
public void simpleGatewayWithStartupFalse() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithOrderAndAutoStartupFalse", AbstractEndpoint.class);
assertEquals(Boolean.FALSE, new DirectFieldAccessor(endpoint).getPropertyValue("autoStartup"));
AbstractEndpoint endpoint = this.context.getBean("gatewayWithOrderAndAutoStartupFalse",
AbstractEndpoint.class);
assertThat(new DirectFieldAccessor(endpoint).getPropertyValue("autoStartup")).isEqualTo(Boolean.FALSE);
}
@Test
@@ -284,11 +283,13 @@ public class WebServiceOutboundGatewayParserTests {
ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(
"marshallingWebServiceOutboundGatewayParserTests.xml", this.getClass());
AbstractEndpoint endpoint = (AbstractEndpoint) context.getBean("gatewayWithAllInOneMarshaller");
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = TestUtils.getPropertyValue(endpoint, "handler");
Marshaller marshaller = context.getBean("marshallerAndUnmarshaller", Marshaller.class);
assertSame(marshaller, TestUtils.getPropertyValue(gateway, "webServiceTemplate.marshaller", Marshaller.class));
assertSame(marshaller, TestUtils.getPropertyValue(gateway, "webServiceTemplate.unmarshaller", Unmarshaller.class));
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate.marshaller", Marshaller.class))
.isSameAs(marshaller);
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate.unmarshaller", Unmarshaller.class))
.isSameAs(marshaller);
context.close();
}
@@ -297,12 +298,14 @@ public class WebServiceOutboundGatewayParserTests {
ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(
"marshallingWebServiceOutboundGatewayParserTests.xml", this.getClass());
AbstractEndpoint endpoint = (AbstractEndpoint) context.getBean("gatewayWithSeparateMarshallerAndUnmarshaller");
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = TestUtils.getPropertyValue(endpoint, "handler");
Marshaller marshaller = context.getBean("marshaller", Marshaller.class);
Unmarshaller unmarshaller = context.getBean("unmarshaller", Unmarshaller.class);
assertSame(marshaller, TestUtils.getPropertyValue(gateway, "webServiceTemplate.marshaller", Marshaller.class));
assertSame(unmarshaller, TestUtils.getPropertyValue(gateway, "webServiceTemplate.unmarshaller", Unmarshaller.class));
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate.marshaller", Marshaller.class))
.isSameAs(marshaller);
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate.unmarshaller", Unmarshaller.class))
.isSameAs(unmarshaller);
context.close();
}
@@ -311,12 +314,12 @@ public class WebServiceOutboundGatewayParserTests {
ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(
"marshallingWebServiceOutboundGatewayParserTests.xml", this.getClass());
AbstractEndpoint endpoint = (AbstractEndpoint) context.getBean("gatewayWithCustomRequestCallback");
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = TestUtils.getPropertyValue(endpoint, "handler");
assertEquals(MarshallingWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(MarshallingWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
WebServiceMessageCallback callback = (WebServiceMessageCallback) context.getBean("requestCallback");
assertEquals(callback, accessor.getPropertyValue("requestCallback"));
assertThat(accessor.getPropertyValue("requestCallback")).isEqualTo(callback);
context.close();
}
@@ -324,15 +327,18 @@ public class WebServiceOutboundGatewayParserTests {
public void marshallingGatewayWithAllInOneMarshallerAndMessageFactory() {
ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(
"marshallingWebServiceOutboundGatewayParserTests.xml", this.getClass());
AbstractEndpoint endpoint = (AbstractEndpoint) context.getBean("gatewayWithAllInOneMarshallerAndMessageFactory");
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
AbstractEndpoint endpoint = (AbstractEndpoint) context.getBean(
"gatewayWithAllInOneMarshallerAndMessageFactory");
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = TestUtils.getPropertyValue(endpoint, "handler");
Marshaller marshaller = context.getBean("marshallerAndUnmarshaller", Marshaller.class);
assertSame(marshaller, TestUtils.getPropertyValue(gateway, "webServiceTemplate.marshaller", Marshaller.class));
assertSame(marshaller, TestUtils.getPropertyValue(gateway, "webServiceTemplate.unmarshaller", Unmarshaller.class));
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate.marshaller", Marshaller.class))
.isSameAs(marshaller);
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate.unmarshaller", Unmarshaller.class))
.isSameAs(marshaller);
WebServiceMessageFactory messageFactory = (WebServiceMessageFactory) context.getBean("messageFactory");
assertEquals(messageFactory, TestUtils.getPropertyValue(gateway, "webServiceTemplate.messageFactory"));
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate.messageFactory")).isEqualTo(messageFactory);
context.close();
}
@@ -340,45 +346,49 @@ public class WebServiceOutboundGatewayParserTests {
public void marshallingGatewayWithSeparateMarshallerAndUnmarshallerAndMessageFactory() {
ConfigurableApplicationContext context = new ClassPathXmlApplicationContext(
"marshallingWebServiceOutboundGatewayParserTests.xml", this.getClass());
AbstractEndpoint endpoint = (AbstractEndpoint) context.getBean("gatewayWithSeparateMarshallerAndUnmarshallerAndMessageFactory");
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
AbstractEndpoint endpoint = (AbstractEndpoint) context.getBean(
"gatewayWithSeparateMarshallerAndUnmarshallerAndMessageFactory");
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = TestUtils.getPropertyValue(endpoint, "handler");
Marshaller marshaller = context.getBean("marshaller", Marshaller.class);
Unmarshaller unmarshaller = context.getBean("unmarshaller", Unmarshaller.class);
assertSame(marshaller, TestUtils.getPropertyValue(gateway, "webServiceTemplate.marshaller", Marshaller.class));
assertSame(unmarshaller, TestUtils.getPropertyValue(gateway, "webServiceTemplate.unmarshaller", Unmarshaller.class));
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate.marshaller", Marshaller.class))
.isSameAs(marshaller);
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate.unmarshaller", Unmarshaller.class))
.isSameAs(unmarshaller);
WebServiceMessageFactory messageFactory = context.getBean("messageFactory", WebServiceMessageFactory.class);
assertEquals(messageFactory, TestUtils.getPropertyValue(gateway, "webServiceTemplate.messageFactory"));
assertThat(TestUtils.getPropertyValue(gateway, "webServiceTemplate.messageFactory")).isEqualTo(messageFactory);
context.close();
}
@Test
public void simpleGatewayWithDestinationProvider() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithDestinationProvider", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
Object gateway = new DirectFieldAccessor(endpoint).getPropertyValue("handler");
StubDestinationProvider stubProvider = (StubDestinationProvider) context.getBean("destinationProvider");
assertEquals(SimpleWebServiceOutboundGateway.class, gateway.getClass());
assertThat(gateway.getClass()).isEqualTo(SimpleWebServiceOutboundGateway.class);
DirectFieldAccessor accessor = new DirectFieldAccessor(gateway);
assertEquals("Wrong DestinationProvider", stubProvider, accessor.getPropertyValue("destinationProvider"));
assertNull(accessor.getPropertyValue("uri"));
assertThat(accessor.getPropertyValue("destinationProvider")).as("Wrong DestinationProvider")
.isEqualTo(stubProvider);
assertThat(accessor.getPropertyValue("uri")).isNull();
Object destinationProviderObject = new DirectFieldAccessor(
accessor.getPropertyValue("webServiceTemplate")).getPropertyValue("destinationProvider");
assertEquals("Wrong DestinationProvider", stubProvider, destinationProviderObject);
assertThat(destinationProviderObject).as("Wrong DestinationProvider").isEqualTo(stubProvider);
}
@Test
public void advised() {
adviceCalled = 0;
AbstractEndpoint endpoint = this.context.getBean("gatewayWithAdvice", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
MessageHandler handler = TestUtils.getPropertyValue(endpoint, "handler", MessageHandler.class);
handler.handleMessage(new GenericMessage<String>("foo"));
assertEquals(1, adviceCalled);
assertThat(adviceCalled).isEqualTo(1);
}
@Test
@@ -386,17 +396,17 @@ public class WebServiceOutboundGatewayParserTests {
adviceCalled = 0;
MessageChannel channel = context.getBean("gatewayWithAdviceInsideAChain", MessageChannel.class);
channel.send(new GenericMessage<String>("foo"));
assertEquals(1, adviceCalled);
assertThat(adviceCalled).isEqualTo(1);
}
@Test
@SuppressWarnings("unchecked")
public void jmsUri() {
AbstractEndpoint endpoint = this.context.getBean("gatewayWithJmsUri", AbstractEndpoint.class);
assertEquals(EventDrivenConsumer.class, endpoint.getClass());
assertThat(endpoint.getClass()).isEqualTo(EventDrivenConsumer.class);
MessageHandler handler = TestUtils.getPropertyValue(endpoint, "handler", MessageHandler.class);
assertNull(TestUtils.getPropertyValue(handler, "destinationProvider"));
assertFalse(TestUtils.getPropertyValue(handler, "encodeUri", Boolean.class));
assertThat(TestUtils.getPropertyValue(handler, "destinationProvider")).isNull();
assertThat(TestUtils.getPropertyValue(handler, "encodeUri", Boolean.class)).isFalse();
WebServiceTemplate webServiceTemplate = TestUtils.getPropertyValue(handler, "webServiceTemplate",
WebServiceTemplate.class);

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2017 the original author or authors.
* Copyright 2002-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,13 +16,7 @@
package org.springframework.integration.ws.config;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -100,34 +94,34 @@ public class WebServiceOutboundGatewayWithHeaderMapperTests {
"handler", SimpleWebServiceOutboundGateway.class);
DefaultSoapHeaderMapper headerMapper = TestUtils.getPropertyValue(gateway, "headerMapper",
DefaultSoapHeaderMapper.class);
assertNotNull(headerMapper);
assertThat(headerMapper).isNotNull();
AbstractHeaderMapper.HeaderMatcher requestHeaderMatcher = TestUtils.getPropertyValue(headerMapper,
"requestHeaderMatcher", AbstractHeaderMapper.HeaderMatcher.class);
assertTrue(requestHeaderMatcher.matchHeader("foo"));
assertTrue(requestHeaderMatcher.matchHeader("foo123"));
assertTrue(requestHeaderMatcher.matchHeader("baz"));
assertTrue(requestHeaderMatcher.matchHeader("123baz123"));
assertFalse(requestHeaderMatcher.matchHeader("bar"));
assertFalse(requestHeaderMatcher.matchHeader("bar123"));
assertThat(requestHeaderMatcher.matchHeader("foo")).isTrue();
assertThat(requestHeaderMatcher.matchHeader("foo123")).isTrue();
assertThat(requestHeaderMatcher.matchHeader("baz")).isTrue();
assertThat(requestHeaderMatcher.matchHeader("123baz123")).isTrue();
assertThat(requestHeaderMatcher.matchHeader("bar")).isFalse();
assertThat(requestHeaderMatcher.matchHeader("bar123")).isFalse();
AbstractHeaderMapper.HeaderMatcher replyHeaderMatcher = TestUtils.getPropertyValue(headerMapper,
"replyHeaderMatcher", AbstractHeaderMapper.HeaderMatcher.class);
assertFalse(replyHeaderMatcher.matchHeader("foo"));
assertFalse(replyHeaderMatcher.matchHeader("foo123"));
assertFalse(replyHeaderMatcher.matchHeader("baz"));
assertFalse(replyHeaderMatcher.matchHeader("123baz123"));
assertTrue(replyHeaderMatcher.matchHeader("bar"));
assertTrue(replyHeaderMatcher.matchHeader("bar123"));
assertThat(replyHeaderMatcher.matchHeader("foo")).isFalse();
assertThat(replyHeaderMatcher.matchHeader("foo123")).isFalse();
assertThat(replyHeaderMatcher.matchHeader("baz")).isFalse();
assertThat(replyHeaderMatcher.matchHeader("123baz123")).isFalse();
assertThat(replyHeaderMatcher.matchHeader("bar")).isTrue();
assertThat(replyHeaderMatcher.matchHeader("bar123")).isTrue();
}
@Test
public void withHeaderMapperString() throws Exception {
String payload = "<root><name>bill</name></root>";
Message<?> replyMessage = process(payload, "withHeaderMapper", "inputChannel", true);
assertTrue(replyMessage.getPayload() instanceof String);
assertEquals("bar", replyMessage.getHeaders().get("bar"));
assertNull(replyMessage.getHeaders().get("baz"));
assertThat(replyMessage.getPayload() instanceof String).isTrue();
assertThat(replyMessage.getHeaders().get("bar")).isEqualTo("bar");
assertThat(replyMessage.getHeaders().get("baz")).isNull();
}
@Test
@@ -138,17 +132,17 @@ public class WebServiceOutboundGatewayWithHeaderMapperTests {
String payload = "<root><name>bill</name></root>";
Message<?> replyMessage = process(payload, "withHeaderMapper", "inputChannel", true);
assertThat(replyMessage.getPayload(), instanceOf(WebServiceMessage.class));
assertEquals("bar", replyMessage.getHeaders().get("bar"));
assertNull(replyMessage.getHeaders().get("baz"));
assertThat(replyMessage.getPayload()).isInstanceOf(WebServiceMessage.class);
assertThat(replyMessage.getHeaders().get("bar")).isEqualTo("bar");
assertThat(replyMessage.getHeaders().get("baz")).isNull();
}
@Test
public void withHeaderMapperStringPOX() throws Exception {
String payload = "<root><name>bill</name></root>";
Message<?> replyMessage = process(payload, "withHeaderMapper", "inputChannel", false);
assertTrue(replyMessage.getPayload() instanceof String);
assertTrue(((String) replyMessage.getPayload()).contains("<person><name>oleg</name></person>"));
assertThat(replyMessage.getPayload() instanceof String).isTrue();
assertThat(((String) replyMessage.getPayload()).contains("<person><name>oleg</name></person>")).isTrue();
}
@Test
@@ -158,9 +152,9 @@ public class WebServiceOutboundGatewayWithHeaderMapperTests {
Document document = docBuilder.parse(new ByteArrayInputStream("<root><name>bill</name></root>".getBytes()));
DOMSource payload = new DOMSource(document);
Message<?> replyMessage = process(payload, "withHeaderMapper", "inputChannel", true);
assertTrue(replyMessage.getPayload() instanceof DOMSource);
assertEquals("bar", replyMessage.getHeaders().get("bar"));
assertNull(replyMessage.getHeaders().get("baz"));
assertThat(replyMessage.getPayload() instanceof DOMSource).isTrue();
assertThat(replyMessage.getHeaders().get("bar")).isEqualTo("bar");
assertThat(replyMessage.getHeaders().get("baz")).isNull();
}
@Test
@@ -170,8 +164,8 @@ public class WebServiceOutboundGatewayWithHeaderMapperTests {
Document document = docBuilder.parse(new ByteArrayInputStream("<root><name>bill</name></root>".getBytes()));
DOMSource payload = new DOMSource(document);
Message<?> replyMessage = process(payload, "withHeaderMapper", "inputChannel", false);
assertTrue(replyMessage.getPayload() instanceof DOMSource);
assertTrue(this.extractStringResult(replyMessage).contains("<person><name>oleg</name></person>"));
assertThat(replyMessage.getPayload() instanceof DOMSource).isTrue();
assertThat(this.extractStringResult(replyMessage).contains("<person><name>oleg</name></person>")).isTrue();
}
@Test
@@ -180,9 +174,9 @@ public class WebServiceOutboundGatewayWithHeaderMapperTests {
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document payload = docBuilder.parse(new ByteArrayInputStream("<root><name>bill</name></root>".getBytes()));
Message<?> replyMessage = process(payload, "withHeaderMapper", "inputChannel", true);
assertTrue(replyMessage.getPayload() instanceof Document);
assertEquals("bar", replyMessage.getHeaders().get("bar"));
assertNull(replyMessage.getHeaders().get("baz"));
assertThat(replyMessage.getPayload() instanceof Document).isTrue();
assertThat(replyMessage.getHeaders().get("bar")).isEqualTo("bar");
assertThat(replyMessage.getHeaders().get("baz")).isNull();
}
@Test
@@ -191,8 +185,8 @@ public class WebServiceOutboundGatewayWithHeaderMapperTests {
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document payload = docBuilder.parse(new ByteArrayInputStream("<root><name>bill</name></root>".getBytes()));
Message<?> replyMessage = process(payload, "withHeaderMapper", "inputChannel", false);
assertTrue(replyMessage.getPayload() instanceof Document);
assertTrue(this.extractStringResult(replyMessage).contains("<person><name>oleg</name></person>"));
assertThat(replyMessage.getPayload() instanceof Document).isTrue();
assertThat(this.extractStringResult(replyMessage).contains("<person><name>oleg</name></person>")).isTrue();
}
@Test
@@ -200,8 +194,8 @@ public class WebServiceOutboundGatewayWithHeaderMapperTests {
Person person = new Person();
person.setName("Bill Clinton");
Message<?> replyMessage = process(person, "marshallingWithHeaderMapper", "inputMarshallingChannel", true);
assertEquals("bar", replyMessage.getHeaders().get("bar"));
assertNull(replyMessage.getHeaders().get("baz"));
assertThat(replyMessage.getHeaders().get("bar")).isEqualTo("bar");
assertThat(replyMessage.getHeaders().get("baz")).isNull();
}
private Message<?> process(Object payload, String gatewayName, String channelName, final boolean soap) throws Exception {
@@ -233,10 +227,10 @@ public class WebServiceOutboundGatewayWithHeaderMapperTests {
// }
if (soap) {
SoapHeader soapHeader = ((SoapMessage) wsMessage).getSoapHeader();
assertNotNull(soapHeader.getAttributeValue(QNameUtils.parseQNameString("foo")));
assertNotNull(soapHeader.getAttributeValue(QNameUtils.parseQNameString("foobar")));
assertNotNull(soapHeader.getAttributeValue(QNameUtils.parseQNameString("abaz")));
assertNull(soapHeader.getAttributeValue(QNameUtils.parseQNameString("bar")));
assertThat(soapHeader.getAttributeValue(QNameUtils.parseQNameString("foo"))).isNotNull();
assertThat(soapHeader.getAttributeValue(QNameUtils.parseQNameString("foobar"))).isNotNull();
assertThat(soapHeader.getAttributeValue(QNameUtils.parseQNameString("abaz"))).isNotNull();
assertThat(soapHeader.getAttributeValue(QNameUtils.parseQNameString("bar"))).isNull();
}
return null;