Standardised support for result-factory ad result-type across XmlMarshallingTransfromer and XsltPayloadTransformer

This commit is contained in:
Jonas Partner
2008-09-22 11:34:18 +00:00
parent 46a8c311d6
commit a09ae498f0
6 changed files with 133 additions and 75 deletions

View File

@@ -14,6 +14,12 @@
<si-xml:xslt-transformer id="xsltTransformerWithTemplatesAndResultTransformer"
xsl-templates="templates" result-transformer="resultTransformer" />
<si-xml:xslt-transformer id="xsltTransformerWithTemplatesAndResultFactory"
xsl-templates="templates" result-factory="stubResultFactory" />
<si-xml:xslt-transformer id="xsltTransformerWithTemplatesAndStringResulType"
xsl-templates="templates" result-type="StringResult" />
<bean id="templates"
@@ -25,5 +31,6 @@
<constructor-arg value="testReturn" />
</bean>
<bean id="stubResultFactory" class="org.springframework.integration.xml.config.StubResultFactory"/>
</beans>

View File

@@ -31,7 +31,9 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.message.GenericMessage;
import org.springframework.integration.message.Message;
import org.springframework.integration.transformer.Transformer;
import org.springframework.integration.xml.config.StubResultFactory.StubStringResult;
import org.springframework.integration.xml.util.XmlTestUtil;
import org.springframework.xml.transform.StringResult;
/**
* @author Jonas Partner
@@ -81,5 +83,28 @@ public class XsltPayloadTransformerParserTests {
String strResult = (String)result.getPayload();
assertEquals("Wrong payload", "testReturn", strResult);
}
@Test
public void testWithResourceProvidedndStubResultFactory() throws Exception {
Transformer transformer = (Transformer) applicationContext
.getBean("xsltTransformerWithTemplatesAndResultFactory");
GenericMessage<Object> message = new GenericMessage<Object>(XmlTestUtil.getDomSourceForString(doc));
Message<?> result = transformer.transform(message);
assertTrue("Payload was not a StubStringResult", result.getPayload() instanceof StubStringResult);
}
@Test
public void testWithResourceAndStringResultType() throws Exception {
Transformer transformer = (Transformer) applicationContext
.getBean("xsltTransformerWithTemplatesAndStringResulType");
GenericMessage<Object> message = new GenericMessage<Object>(XmlTestUtil.getDomSourceForString(doc));
Message<?> result = transformer.transform(message);
assertTrue("Payload was not a StringResult", result.getPayload() instanceof StringResult);
}
}