package ru.codeinside.gws.xml.normalizer;
import org.junit.Assert;
import org.junit.Test;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import ru.codeinside.gws.api.XmlNormalizer;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
public class NormalizerTest extends Assert {
@Test
public void test_normalizerIs() throws IOException, NoSuchAlgorithmException {
String sourceXML = "<rev:createRequestBean xmlns:rev=\"http://smev.gosuslugi.ru/rev110801\"\n" +
" ><Hello/><rev:okato>11111111111</rev:okato\n" +
" ><rev:requestType>558102100000</rev:requestType\n" +
"></rev:createRequestBean>";
XmlNormalizer normalizer = new XmlNormalizerImpl();
ByteArrayInputStream is = new ByteArrayInputStream(sourceXML.getBytes());
ByteArrayOutputStream os = new ByteArrayOutputStream();
normalizer.normalize(is, os);
String expected = "<rev:createRequestBean xmlns:rev=\"http://smev.gosuslugi.ru/rev110801\">" +
"<Hello></Hello><rev:okato>11111111111</rev:okato><rev:requestType>558102100000</rev:requestType>" +
"</rev:createRequestBean>";
assertEquals(expected, os.toString());
}
@Test
public void test_normalizerEl() throws IOException, NoSuchAlgorithmException, ParserConfigurationException, SAXException {
String sourceXML = "<rev:createRequestBean xmlns:rev=\"http://smev.gosuslugi.ru/rev110801\"\n" +
" ><Hello/><rev:okato>11111111111</rev:okato\n" +
" ><rev:requestType>558102100000</rev:requestType\n" +
"></rev:createRequestBean>";
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
ByteArrayInputStream is = new ByteArrayInputStream(sourceXML.getBytes());
Document document = documentBuilderFactory.newDocumentBuilder().parse(is);
XmlNormalizer normalizer = new XmlNormalizerImpl();
ByteArrayOutputStream os = new ByteArrayOutputStream();
normalizer.normalize(document.getDocumentElement(), os);
String expected = "<rev:createRequestBean xmlns:rev=\"http://smev.gosuslugi.ru/rev110801\">" +
"<Hello></Hello><rev:okato>11111111111</rev:okato><rev:requestType>558102100000</rev:requestType>" +
"</rev:createRequestBean>";
assertEquals(expected, os.toString());
}
}