From 0d09bdccd4f252d7bf06339eb6327be5d7213ba7 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 20 Dec 2018 19:54:57 -0500 Subject: [PATCH] Replace xmlunit dependecy with AssertJ methods --- build.gradle | 3 - .../xml/DefaultXmlPayloadConverterTests.java | 94 ++++----- .../xml/source/DomSourceFactoryTests.java | 53 +++-- .../xml/source/StringSourceTests.java | 35 ++-- .../ResultToStringTransformerTests.java | 32 +-- .../XsltPayloadTransformerTests.java | 194 ++++++++++-------- .../integration/xml/transformer/transform.xsl | 2 +- .../integration/xml/util/XmlTestUtil.java | 13 +- 8 files changed, 224 insertions(+), 202 deletions(-) diff --git a/build.gradle b/build.gradle index 4158c7dfb8..6efdb2680a 100644 --- a/build.gradle +++ b/build.gradle @@ -141,7 +141,6 @@ subprojects { subproject -> springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.1.3.RELEASE' springWsVersion = '3.0.4.RELEASE' tomcatVersion = "9.0.12" - xmlUnitVersion = '1.6' xstreamVersion = '1.4.11.1' } @@ -703,8 +702,6 @@ project('spring-integration-xml') { compile "org.springframework:spring-oxm:$springVersion" compile ("org.springframework.ws:spring-xml:$springWsVersion") compile ("org.springframework.ws:spring-ws-core:$springWsVersion") - - testCompile "xmlunit:xmlunit:$xmlUnitVersion" } } diff --git a/spring-integration-xml/src/test/java/org/springframework/integration/xml/DefaultXmlPayloadConverterTests.java b/spring-integration-xml/src/test/java/org/springframework/integration/xml/DefaultXmlPayloadConverterTests.java index 733dc4ba42..0e9c6ba635 100644 --- a/spring-integration-xml/src/test/java/org/springframework/integration/xml/DefaultXmlPayloadConverterTests.java +++ b/spring-integration-xml/src/test/java/org/springframework/integration/xml/DefaultXmlPayloadConverterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 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,8 +16,8 @@ package org.springframework.integration.xml; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.io.File; import java.io.IOException; @@ -30,9 +30,7 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.stream.StreamSource; -import org.custommonkey.xmlunit.XMLAssert; -import org.junit.Assert; -import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Node; @@ -40,6 +38,7 @@ import org.w3c.dom.NodeList; import org.xml.sax.InputSource; import org.springframework.core.io.ClassPathResource; +import org.springframework.integration.xml.util.XmlTestUtil; import org.springframework.messaging.MessagingException; /** @@ -50,80 +49,83 @@ import org.springframework.messaging.MessagingException; */ public class DefaultXmlPayloadConverterTests { - private static final String TEST_DOCUMENT_AS_STRING = "hello"; + private static final String TEST_DOCUMENT_AS_STRING = + "hello"; - private DefaultXmlPayloadConverter converter; + private static final DefaultXmlPayloadConverter converter = new DefaultXmlPayloadConverter(); - private Document testDocument; + private static Document testDocument; - @Before - public void setUp() throws Exception { - converter = new DefaultXmlPayloadConverter(); - testDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse( - new InputSource(new StringReader(TEST_DOCUMENT_AS_STRING))); + @BeforeClass + public static void setUp() throws Exception { + testDocument = + DocumentBuilderFactory.newInstance() + .newDocumentBuilder() + .parse(new InputSource(new StringReader(TEST_DOCUMENT_AS_STRING))); } @Test - public void testGetDocumentWithString() { - Document doc = converter.convertToDocument("hello"); - XMLAssert.assertXMLEqual(testDocument, doc); + public void testGetDocumentWithString() throws Exception { + Document doc = converter.convertToDocument(TEST_DOCUMENT_AS_STRING); + assertThat(XmlTestUtil.docToString(doc)).isXmlEqualTo(TEST_DOCUMENT_AS_STRING); } @Test public void testGetDocumentWithDocument() { Document doc = converter.convertToDocument(testDocument); - Assert.assertTrue(doc == testDocument); + assertThat(doc).isSameAs(testDocument); } @Test public void testGetNodePassingNode() { Node element = testDocument.getElementsByTagName("test").item(0); Node n = converter.convertToNode(element); - assertTrue("Wrong node returned", element == n); + assertThat(n).isSameAs(element); } @Test - public void testGetNodePassingString() { - Node n = converter.convertToNode("hello"); - XMLAssert.assertXMLEqual(testDocument, (Document) n); + public void testGetNodePassingString() throws Exception { + Node n = converter.convertToNode(TEST_DOCUMENT_AS_STRING); + assertThat(XmlTestUtil.docToString((Document) n)).isXmlEqualTo(TEST_DOCUMENT_AS_STRING); } @Test - public void testGetNodePassingDocument() { + public void testGetNodePassingDocument() throws Exception { Node n = converter.convertToNode(testDocument); - XMLAssert.assertXMLEqual(testDocument, (Document) n); + assertThat(XmlTestUtil.docToString((Document) n)).isXmlEqualTo(TEST_DOCUMENT_AS_STRING); } @Test - public void testGetSourcePassingDocument() throws Exception { + public void testGetSourcePassingDocument() { Source source = converter.convertToSource(testDocument); - assertEquals(DOMSource.class, source.getClass()); + assertThat(source).isInstanceOf(DOMSource.class); } @Test - public void testGetSourcePassingString() throws Exception { + public void testGetSourcePassingString() { Source source = converter.convertToSource(TEST_DOCUMENT_AS_STRING); - assertEquals(DOMSource.class, source.getClass()); + assertThat(source).isInstanceOf(DOMSource.class); } @Test - public void testGetSourcePassingSource() throws Exception { + public void testGetSourcePassingSource() { SAXSource passedInSource = new SAXSource(); Source source = converter.convertToSource(passedInSource); - assertEquals(source, passedInSource); + assertThat(source).isEqualTo(passedInSource); } - @Test(expected = MessagingException.class) + @Test public void testInvalidPayload() { - converter.convertToSource(12); + assertThatThrownBy(() -> converter.convertToSource(12)) + .isExactlyInstanceOf(MessagingException.class); } @Test public void testGetNodePassingDOMSource() { Node element = testDocument.getElementsByTagName("test").item(0); Node n = converter.convertToNode(new DOMSource(element)); - assertTrue("Wrong node returned", element == n); + assertThat(n).isSameAs(element); } @Test @@ -131,33 +133,33 @@ public class DefaultXmlPayloadConverterTests { Node element = testDocument.getElementsByTagName("test").item(0); Document doc = converter.convertToDocument(element); NodeList childNodes = doc.getChildNodes(); - assertEquals(1, childNodes.getLength()); - assertEquals("test", childNodes.item(0).getNodeName()); - assertEquals("hello", childNodes.item(0).getTextContent()); + assertThat(childNodes.getLength()).isEqualTo(1); + assertThat(childNodes.item(0).getNodeName()).isEqualTo("test"); + assertThat(childNodes.item(0).getTextContent()).isEqualTo("hello"); } @Test - public void testConvertSourceToDocument() throws Exception { + public void testConvertSourceToDocument() { Node element = testDocument.getElementsByTagName("test").item(0); DOMSource domSource = new DOMSource(element); Document doc = converter.convertToDocument(domSource); NodeList childNodes = doc.getChildNodes(); - assertEquals(1, childNodes.getLength()); - assertEquals("test", childNodes.item(0).getNodeName()); - assertEquals("hello", childNodes.item(0).getTextContent()); + assertThat(childNodes.getLength()).isEqualTo(1); + assertThat(childNodes.item(0).getNodeName()).isEqualTo("test"); + assertThat(childNodes.item(0).getTextContent()).isEqualTo("hello"); } @Test public void testConvertBytesToDocument() throws Exception { - Document doc = converter.convertToDocument("hello".getBytes()); - XMLAssert.assertXMLEqual(testDocument, doc); + Document doc = converter.convertToDocument(TEST_DOCUMENT_AS_STRING.getBytes()); + assertThat(XmlTestUtil.docToString(doc)).isXmlEqualTo(TEST_DOCUMENT_AS_STRING); } @Test public void testConvertFileToDocument() throws Exception { File file = new ClassPathResource("org/springframework/integration/xml/customSource.data").getFile(); Document doc = converter.convertToDocument(file); - XMLAssert.assertXMLEqual(testDocument, doc); + assertThat(XmlTestUtil.docToString(doc)).isXmlEqualTo(TEST_DOCUMENT_AS_STRING); } @Test @@ -165,7 +167,7 @@ public class DefaultXmlPayloadConverterTests { InputStream inputStream = new ClassPathResource("org/springframework/integration/xml/customSource.data") .getInputStream(); Document doc = converter.convertToDocument(inputStream); - XMLAssert.assertXMLEqual(testDocument, doc); + assertThat(XmlTestUtil.docToString(doc)).isXmlEqualTo(TEST_DOCUMENT_AS_STRING); } @Test @@ -173,13 +175,13 @@ public class DefaultXmlPayloadConverterTests { ClassPathResource resource = new ClassPathResource("org/springframework/integration/xml/customSource.data"); StreamSource source = new StreamSource(resource.getInputStream()); Document doc = converter.convertToDocument(source); - XMLAssert.assertXMLEqual(testDocument, doc); + assertThat(XmlTestUtil.docToString(doc)).isXmlEqualTo(TEST_DOCUMENT_AS_STRING); } @Test public void testConvertCustomSourceToDocument() throws Exception { Document doc = converter.convertToDocument(new MySource()); - XMLAssert.assertXMLEqual(testDocument, doc); + assertThat(XmlTestUtil.docToString(doc)).isXmlEqualTo(TEST_DOCUMENT_AS_STRING); } private static class MySource implements Source { diff --git a/spring-integration-xml/src/test/java/org/springframework/integration/xml/source/DomSourceFactoryTests.java b/spring-integration-xml/src/test/java/org/springframework/integration/xml/source/DomSourceFactoryTests.java index 11bd432158..325e045a5e 100644 --- a/spring-integration-xml/src/test/java/org/springframework/integration/xml/source/DomSourceFactoryTests.java +++ b/spring-integration-xml/src/test/java/org/springframework/integration/xml/source/DomSourceFactoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 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.xml.source; -import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.io.StringReader; @@ -28,59 +27,55 @@ import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; -import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.w3c.dom.Document; import org.xml.sax.InputSource; +import org.springframework.integration.xml.util.XmlTestUtil; import org.springframework.messaging.MessagingException; -import org.springframework.xml.transform.StringResult; /** * @author Jonas Partner + * @author Artem Bilan */ public class DomSourceFactoryTests { - Document doc; + private static final String docContent = "testValue"; - DomSourceFactory sourceFactory; + private static final DomSourceFactory sourceFactory = new DomSourceFactory(); - String docContent = "testValue"; + private static Document doc; - @Before - public void setUp() throws Exception { + private static Transformer transformer; + + @BeforeClass + public static void setUp() throws Exception { StringReader reader = new StringReader(docContent); doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new InputSource(reader)); - sourceFactory = new DomSourceFactory(); + transformer = TransformerFactory.newInstance().newTransformer(); } @Test public void testWithDocumentPayload() throws Exception { Source source = sourceFactory.createSource(doc); - assertNotNull("Returned source was null", source); - assertEquals("Expected DOMSource", DOMSource.class, source.getClass()); - assertXMLEqual("Wrong content in source ", docContent, getAsString(source)); + assertThat(source).isNotNull(); + assertThat(source).isInstanceOf(DOMSource.class); + assertThat(XmlTestUtil.sourceToString(source)).isXmlEqualTo(docContent); } @Test public void testWithStringPayload() throws Exception { Source source = sourceFactory.createSource(docContent); - assertNotNull("Returned source was null", source); - assertEquals("Expected DOMSource", DOMSource.class, source.getClass()); - assertXMLEqual("Wrong content in source ", docContent, getAsString(source)); + assertThat(source).isNotNull(); + assertThat(source).isInstanceOf(DOMSource.class); + assertThat(XmlTestUtil.sourceToString(source)).isXmlEqualTo(docContent); } - @Test(expected = MessagingException.class) - public void testWithUnsupportedPayload() throws Exception { - sourceFactory.createSource(new Integer(12)); - } - - - private String getAsString(Source source) throws Exception { - Transformer transformer = TransformerFactory.newInstance().newTransformer(); - StringResult res = new StringResult(); - transformer.transform(source, res); - return res.toString(); + @Test + public void testWithUnsupportedPayload() { + assertThatThrownBy(() -> sourceFactory.createSource(12)) + .isExactlyInstanceOf(MessagingException.class); } } diff --git a/spring-integration-xml/src/test/java/org/springframework/integration/xml/source/StringSourceTests.java b/spring-integration-xml/src/test/java/org/springframework/integration/xml/source/StringSourceTests.java index 5e269795bc..57957283fc 100644 --- a/spring-integration-xml/src/test/java/org/springframework/integration/xml/source/StringSourceTests.java +++ b/spring-integration-xml/src/test/java/org/springframework/integration/xml/source/StringSourceTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2018 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,11 @@ package org.springframework.integration.xml.source; -import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.io.BufferedReader; -import org.junit.Before; import org.junit.Test; import org.w3c.dom.Document; @@ -28,14 +28,15 @@ import org.springframework.integration.xml.util.XmlTestUtil; import org.springframework.messaging.MessagingException; import org.springframework.xml.transform.StringSource; +/** + * @author Jonas Partner + * @author Mark Fisher + * @author Gary Russell + * @author Artem Bilan + */ public class StringSourceTests { - StringSourceFactory sourceFactory; - - @Before - public void setUp() throws Exception { - sourceFactory = new StringSourceFactory(); - } + private static final StringSourceFactory sourceFactory = new StringSourceFactory(); @Test public void testWithDocument() throws Exception { @@ -44,7 +45,8 @@ public class StringSourceTests { StringSource source = (StringSource) sourceFactory.createSource(doc); BufferedReader reader = new BufferedReader(source.getReader()); String docAsString = reader.readLine(); - assertXMLEqual("Wrong content in StringSource", "one", docAsString); + + assertThat(docAsString).isXmlEqualTo(docString); } @@ -54,18 +56,17 @@ public class StringSourceTests { StringSource source = (StringSource) sourceFactory.createSource(docString); BufferedReader reader = new BufferedReader(source.getReader()); String docAsString = reader.readLine(); - assertXMLEqual("Wrong content in StringSource", "one", docAsString); + + assertThat(docAsString).isXmlEqualTo(docString); } - @Test(expected = MessagingException.class) - public void testWithUnsupportedPayload() throws Exception { + @Test + public void testWithUnsupportedPayload() { String docString = "one"; StringBuffer buffer = new StringBuffer(docString); - StringSource source = (StringSource) sourceFactory.createSource(buffer); - BufferedReader reader = new BufferedReader(source.getReader()); - String docAsString = reader.readLine(); - assertXMLEqual("Wrong content in StringSource", "one", docAsString); + assertThatThrownBy(() -> sourceFactory.createSource(buffer)) + .isExactlyInstanceOf(MessagingException.class); } } diff --git a/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/ResultToStringTransformerTests.java b/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/ResultToStringTransformerTests.java index 9e71eb1b55..7a49d2b8cb 100644 --- a/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/ResultToStringTransformerTests.java +++ b/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/ResultToStringTransformerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 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.xml.transformer; -import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.util.Properties; @@ -37,12 +36,13 @@ import org.springframework.xml.transform.StringResult; * @author Jonas Partner * @author Dave Turanski * @author Gunnar Hillert + * @author Artem Bilan */ public class ResultToStringTransformerTests { private ResultToStringTransformer transformer; - private String doc = "test"; + private String doc = "test"; @Before @@ -52,11 +52,11 @@ public class ResultToStringTransformerTests { @Test public void testWithDomResult() throws Exception { - DOMResult result = XmlTestUtil.getDomResultForString(doc); + DOMResult result = XmlTestUtil.getDomResultForString(this.doc); Object transformed = transformer.transformResult(result); - assertTrue("Wrong transformed type expected String", transformed instanceof String); + assertThat(transformed).isInstanceOf(String.class); String transformedString = (String) transformed; - assertXMLEqual("Wrong content", doc, transformedString); + assertThat(transformedString).isXmlEqualTo(this.doc); } @Test @@ -67,24 +67,24 @@ public class ResultToStringTransformerTests { outputProperties.setProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); transformer.setOutputProperties(outputProperties); Object transformed = transformer.transformResult(domResult); - assertTrue("Wrong transformed type expected String", transformed instanceof String); + assertThat(transformed).isInstanceOf(String.class); String transformedString = (String) transformed; - assertEquals("Wrong content", formattedDoc, transformedString); + assertThat(transformedString).isEqualTo(formattedDoc); } @Test public void testWithStringResult() throws Exception { StringResult result = XmlTestUtil.getStringResultForString(doc); Object transformed = transformer.transformResult(result); - assertTrue("Wrong transformed type expected String", transformed instanceof String); + assertThat(transformed).isInstanceOf(String.class); String transformedString = (String) transformed; - assertXMLEqual("Wrong content", doc, transformedString); + assertThat(transformedString).isXmlEqualTo(this.doc); } - @Test(expected = MessagingException.class) - public void testWithUnsupportedSaxResult() throws Exception { - SAXResult result = new SAXResult(); - transformer.transformResult(result); + @Test + public void testWithUnsupportedSaxResult() { + assertThatThrownBy(() -> this.transformer.transformResult(new SAXResult())) + .isExactlyInstanceOf(MessagingException.class); } } diff --git a/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTests.java b/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTests.java index 6b197e3969..55d66edc83 100644 --- a/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTests.java +++ b/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/XsltPayloadTransformerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 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,10 @@ package org.springframework.integration.xml.transformer; -import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import java.nio.charset.StandardCharsets; import javax.xml.transform.Result; import javax.xml.transform.TransformerException; @@ -34,11 +35,12 @@ import org.springframework.beans.factory.BeanFactory; import org.springframework.core.io.ByteArrayResource; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; -import org.springframework.integration.support.MessageBuilder; +import org.springframework.integration.xml.result.DomResultFactory; import org.springframework.integration.xml.result.StringResultFactory; import org.springframework.integration.xml.util.XmlTestUtil; import org.springframework.messaging.Message; import org.springframework.messaging.MessagingException; +import org.springframework.messaging.support.GenericMessage; import org.springframework.xml.transform.StringResult; import org.springframework.xml.transform.StringSource; @@ -48,183 +50,200 @@ import org.springframework.xml.transform.StringSource; * @author Oleg Zhurakousky * @author Gunnar Hillert * @author Mike Bazos + * @author Artem Bilan */ public class XsltPayloadTransformerTests { private XsltPayloadTransformer transformer; - private final String docAsString = "test"; + private final String docAsString = + "test"; - private final String outputAsString = "test"; + private final String outputAsString = "test"; @Before - public void setUp() throws Exception { - transformer = new XsltPayloadTransformer(getXslResource()); - transformer.setBeanFactory(Mockito.mock(BeanFactory.class)); - transformer.afterPropertiesSet(); + public void setUp() { + this.transformer = new XsltPayloadTransformer(getXslResource()); + this.transformer.setBeanFactory(Mockito.mock(BeanFactory.class)); + this.transformer.setAlwaysUseResultFactory(false); + this.transformer.afterPropertiesSet(); } @Test public void testDocumentAsPayload() throws Exception { - Object transformed = transformer.doTransform(buildMessage(XmlTestUtil - .getDocumentForString(docAsString))); - assertTrue("Wrong return type for document payload", Document.class - .isAssignableFrom(transformed.getClass())); + Message message = new GenericMessage<>(XmlTestUtil.getDocumentForString(this.docAsString)); + Object transformed = this.transformer.doTransform(message); + assertThat(transformed) + .as("Wrong return type for document payload") + .isInstanceOf(Document.class); Document transformedDocument = (Document) transformed; - assertXMLEqual(outputAsString, XmlTestUtil - .docToString(transformedDocument)); + assertThat(XmlTestUtil.docToString(transformedDocument)).isXmlEqualTo(this.outputAsString); } @Test public void testSourceAsPayload() throws Exception { - Object transformed = transformer - .doTransform(buildMessage(new StringSource(docAsString))); - assertEquals("Wrong return type for source payload", DOMResult.class, - transformed.getClass()); + GenericMessage message = new GenericMessage<>(new StringSource(this.docAsString)); + Object transformed = transformer.doTransform(message); + + assertThat(transformed) + .as("Wrong return type for document payload") + .isInstanceOf(DOMResult.class); + DOMResult result = (DOMResult) transformed; - assertXMLEqual("Document incorrect after transformation", XmlTestUtil - .getDocumentForString(outputAsString), (Document) result - .getNode()); + assertThat(XmlTestUtil.docToString((Document) result.getNode())) + .as("Document incorrect after transformation") + .isXmlEqualTo(this.outputAsString); } @Test public void testStringAsPayload() throws Exception { - Object transformed = transformer.doTransform(buildMessage(docAsString)); - assertEquals("Wrong return type for string payload", String.class, - transformed.getClass()); + Object transformed = this.transformer.doTransform(new GenericMessage<>(this.docAsString)); + + assertThat(transformed) + .as("Wrong return type for document payload") + .isInstanceOf(String.class); + String transformedString = (String) transformed; - assertXMLEqual("String incorrect after transform", outputAsString, - transformedString); + assertThat(transformedString) + .as("String incorrect after transform") + .isXmlEqualTo(this.outputAsString); } @Test public void testStringAsPayloadUseResultFactoryTrue() throws Exception { - transformer.setAlwaysUseResultFactory(true); - Object transformed = transformer.doTransform(buildMessage(docAsString)); - assertEquals("Wrong return type for useFactories true", - DOMResult.class, transformed.getClass()); + this.transformer.setAlwaysUseResultFactory(true); + Object transformed = transformer.doTransform(new GenericMessage<>(this.docAsString)); + + assertThat(transformed) + .as("Wrong return type for useFactories true") + .isInstanceOf(DOMResult.class); + DOMResult result = (DOMResult) transformed; - assertXMLEqual("Document incorrect after transformation", XmlTestUtil - .getDocumentForString(outputAsString), (Document) result - .getNode()); + assertThat(XmlTestUtil.docToString((Document) result.getNode())) + .as("Document incorrect after transformation") + .isXmlEqualTo(this.outputAsString); } @Test public void testSourceWithResultTransformer() throws Exception { - Integer returnValue = new Integer(13); - transformer = new XsltPayloadTransformer(getXslResource(), + Integer returnValue = 13; + XsltPayloadTransformer transformer = new XsltPayloadTransformer(getXslResource(), new StubResultTransformer(returnValue)); transformer.setBeanFactory(Mockito.mock(BeanFactory.class)); transformer.afterPropertiesSet(); Object transformed = transformer - .doTransform(buildMessage(new StringSource(docAsString))); - assertEquals("Wrong value from result conversion", returnValue, - transformed); + .doTransform(new GenericMessage<>(new StringSource(docAsString))); + assertThat(transformed).isEqualTo(returnValue); } @Test public void testXsltPayloadWithTransformerFactoryClassname() throws Exception { - Integer returnValue = new Integer(13); - transformer = new XsltPayloadTransformer(getXslResource(), new StubResultTransformer(returnValue), - "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"); + Integer returnValue = 13; + XsltPayloadTransformer transformer = + new XsltPayloadTransformer(getXslResource(), new StubResultTransformer(returnValue), + "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl"); transformer.setBeanFactory(Mockito.mock(BeanFactory.class)); transformer.afterPropertiesSet(); - Object transformed = transformer - .doTransform(buildMessage(new StringSource(docAsString))); - assertEquals("Wrong value from result conversion", returnValue, - transformed); + Object transformed = transformer.doTransform(new GenericMessage<>(new StringSource(this.docAsString))); + assertThat(transformed) + .as("Wrong value from result conversion") + .isEqualTo(returnValue); } - @Test(expected = TransformerFactoryConfigurationError.class) - public void testXsltPayloadWithBadTransformerFactoryClassname() throws Exception { - transformer = new XsltPayloadTransformer(getXslResource(), "foo.bar.Baz"); + @Test + public void testXsltPayloadWithBadTransformerFactoryClassname() { + XsltPayloadTransformer transformer = new XsltPayloadTransformer(getXslResource(), "foo.bar.Baz"); transformer.setBeanFactory(Mockito.mock(BeanFactory.class)); - transformer.afterPropertiesSet(); - transformer.doTransform(buildMessage(new StringSource(docAsString))); + assertThatThrownBy(transformer::afterPropertiesSet) + .isExactlyInstanceOf(TransformerFactoryConfigurationError.class); } - @Test(expected = TransformerException.class) - public void testNonXmlString() throws Exception { - transformer.doTransform(buildMessage("test")); + @Test + public void testNonXmlString() { + assertThatThrownBy(() -> this.transformer.doTransform(new GenericMessage<>("test"))) + .isExactlyInstanceOf(TransformerException.class); } - @Test(expected = MessagingException.class) - public void testUnsupportedPayloadType() throws Exception { - transformer.doTransform(buildMessage(new Long(12))); + @Test + public void testUnsupportedPayloadType() { + assertThatThrownBy(() -> this.transformer.doTransform(new GenericMessage<>(12))) + .isExactlyInstanceOf(MessagingException.class); } @Test public void testXsltWithImports() throws Exception { - Resource resource = new ClassPathResource("transform-with-import.xsl", - this.getClass()); - transformer = new XsltPayloadTransformer(resource); + Resource resource = new ClassPathResource("transform-with-import.xsl", getClass()); + XsltPayloadTransformer transformer = new XsltPayloadTransformer(resource); transformer.setBeanFactory(Mockito.mock(BeanFactory.class)); transformer.afterPropertiesSet(); - assertEquals(transformer.doTransform(buildMessage(docAsString)), - outputAsString); + Object transformed = transformer.doTransform(new GenericMessage<>(this.docAsString)); + assertThat(transformed).isEqualTo(this.outputAsString); } @Test public void documentInStringResultOut() throws Exception { - Resource resource = new ClassPathResource("transform-with-import.xsl", - this.getClass()); - transformer = new XsltPayloadTransformer(resource); + Resource resource = new ClassPathResource("transform-with-import.xsl", getClass()); + XsltPayloadTransformer transformer = new XsltPayloadTransformer(resource); transformer.setResultFactory(new StringResultFactory()); transformer.setAlwaysUseResultFactory(true); transformer.setBeanFactory(Mockito.mock(BeanFactory.class)); transformer.afterPropertiesSet(); - Object returned = transformer.doTransform(buildMessage(XmlTestUtil.getDocumentForString(docAsString))); - assertEquals("Wrong type of return ", StringResult.class, returned.getClass()); + GenericMessage message = new GenericMessage<>(XmlTestUtil.getDocumentForString(this.docAsString)); + Object transformed = transformer.doTransform(message); + assertThat(transformed) + .as("Wrong type of return") + .isInstanceOf(StringResult.class); } @Test public void stringInDomResultOut() throws Exception { - Resource resource = new ClassPathResource("transform-with-import.xsl", - this.getClass()); - transformer = new XsltPayloadTransformer(resource); - transformer.setResultFactory(new StringResultFactory()); + Resource resource = new ClassPathResource("transform-with-import.xsl", getClass()); + XsltPayloadTransformer transformer = new XsltPayloadTransformer(resource); + transformer.setResultFactory(new DomResultFactory()); transformer.setAlwaysUseResultFactory(true); transformer.setBeanFactory(Mockito.mock(BeanFactory.class)); transformer.afterPropertiesSet(); - Object returned = transformer.doTransform(buildMessage(XmlTestUtil.getDocumentForString(docAsString))); - assertEquals("Wrong type of return ", StringResult.class, returned.getClass()); + GenericMessage message = new GenericMessage<>(XmlTestUtil.getDocumentForString(this.docAsString)); + Object transformed = transformer.doTransform(message); + assertThat(transformed) + .as("Wrong type of return") + .isInstanceOf(DOMResult.class); } @Test public void docInStringOut() throws Exception { - transformer = new XsltPayloadTransformer(getXslResourceThatOutputsText()); + XsltPayloadTransformer transformer = new XsltPayloadTransformer(getXslResourceThatOutputsText()); transformer.setResultFactory(new StringResultFactory()); transformer.setAlwaysUseResultFactory(true); transformer.setBeanFactory(Mockito.mock(BeanFactory.class)); transformer.afterPropertiesSet(); - Object returned = transformer.doTransform(buildMessage(XmlTestUtil.getDocumentForString(docAsString))); - assertEquals("Wrong type of return ", StringResult.class, returned.getClass()); - assertEquals("Wrong content in string", "hello world", returned.toString()); + GenericMessage message = new GenericMessage<>(XmlTestUtil.getDocumentForString(this.docAsString)); + Object transformed = transformer.doTransform(message); + assertThat(transformed) + .as("Wrong type of return") + .isInstanceOf(StringResult.class); + assertThat(transformed.toString()).isEqualTo("hello world"); } - protected Message buildMessage(Object payload) { - return MessageBuilder.withPayload(payload).build(); - } - - private Resource getXslResource() throws Exception { + private Resource getXslResource() { String xsl = "" + "" + " " + " test" + " " + ""; - return new ByteArrayResource(xsl.getBytes("UTF-8")); + return new ByteArrayResource(xsl.getBytes(StandardCharsets.UTF_8)); } - private Resource getXslResourceThatOutputsText() throws Exception { + private Resource getXslResourceThatOutputsText() { String xsl = "" + "" + " " + " hello world" + ""; - return new ByteArrayResource(xsl.getBytes("UTF-8")); + return new ByteArrayResource(xsl.getBytes(StandardCharsets.UTF_8)); } public static class StubResultTransformer implements ResultTransformer { @@ -238,6 +257,7 @@ public class XsltPayloadTransformerTests { public Object transformResult(Result result) { return objectToReturn; } + } } diff --git a/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/transform.xsl b/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/transform.xsl index c81165b217..63120ec3da 100644 --- a/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/transform.xsl +++ b/spring-integration-xml/src/test/java/org/springframework/integration/xml/transformer/transform.xsl @@ -1,5 +1,5 @@ - + test diff --git a/spring-integration-xml/src/test/java/org/springframework/integration/xml/util/XmlTestUtil.java b/spring-integration-xml/src/test/java/org/springframework/integration/xml/util/XmlTestUtil.java index 2c36b7b71a..31d5baab16 100644 --- a/spring-integration-xml/src/test/java/org/springframework/integration/xml/util/XmlTestUtil.java +++ b/spring-integration-xml/src/test/java/org/springframework/integration/xml/util/XmlTestUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2018 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. @@ -34,9 +34,12 @@ import org.springframework.xml.transform.StringResult; * Utility class for XML related testing * * @author Jonas Partner + * @author Artem Bilan */ public class XmlTestUtil { + private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance(); + private XmlTestUtil() { super(); } @@ -74,9 +77,13 @@ public class XmlTestUtil { return stringResult.toString(); } - public static void transform(Source source, Result res) throws Exception { - TransformerFactory.newInstance().newTransformer().transform(source, res); + TRANSFORMER_FACTORY.newTransformer().transform(source, res); } + public static String sourceToString(Source source) throws Exception { + StringResult res = new StringResult(); + transform(source, res); + return res.toString(); + } }