SWS-540 - Adding XML declaration to a response

Covariant return types for SoapMessageFactory
This commit is contained in:
Arjen Poutsma
2010-04-08 11:40:43 +00:00
parent 6c8ac54bb8
commit 9ada654f52
5 changed files with 92 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2005-2010 the original author or authors.
* Copyright 2002-2010 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,12 +16,22 @@
package org.springframework.ws.soap.saaj;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Collections;
import java.util.Map;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPConstants;
import javax.xml.soap.SOAPMessage;
import org.springframework.ws.WebServiceMessageFactory;
import org.springframework.ws.soap.SoapMessage;
import org.springframework.ws.soap.soap11.AbstractSoap11MessageFactoryTestCase;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
public class SaajSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryTestCase {
@Override
@@ -30,5 +40,16 @@ public class SaajSoap11MessageFactoryTest extends AbstractSoap11MessageFactoryTe
return new SaajSoapMessageFactory(messageFactory);
}
@Test
public void properties() throws IOException {
Map<String, ?> properties = Collections.singletonMap(SOAPMessage.WRITE_XML_DECLARATION, "true");
((SaajSoapMessageFactory)messageFactory).setMessageProperties(properties);
SoapMessage soapMessage = (SoapMessage) messageFactory.createWebServiceMessage();
ByteArrayOutputStream os = new ByteArrayOutputStream();
soapMessage.writeTo(os);
String result = os.toString("UTF-8");
assertTrue("XML declaration not written", result.startsWith("<?xml version=\"1.0\""));
}
}