/
NikolayIvkin
/
tutorials1
Обзор
Документация
Войти
/
NikolayIvkin
/
tutorials1
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
xml-2/src/test/java/com/baeldung/xml/invalidcharacters/InvalidCharactersUnitTest.java
69 строк
3 KB
anujgaud
Add test for CDATA Sections
09 мар 2024, 18:06
Не верифицирован
09 мар 2024, 18:06
6c8d1d2
Код
Авторство
О чём код?
package com.baeldung.xml.invalidcharacters; import org.w3c.dom.Document; import org.xml.sax.InputSource; import org.xml.sax.SAXParseException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import java.io.StringReader; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; public class InvalidCharactersUnitTest { @Test void givenXml_whenReservedCharacters_thenThrowException() { String invalidXmlString = "<?xml version=\"1.1\" encoding=\"UTF-8\"?><root><name>John & Doe</name></root>"; assertThrowsExactly(SAXParseException.class, () -> parseXmlString(invalidXmlString)); } @Test void givenXml_whenReservedCharactersEscaped_thenSuccess() { String validXmlString = "<?xml version=\"1.1\" encoding=\"UTF-8\"?><root><name>John & Doe</name></root>"; assertDoesNotThrow(() -> { Document document = parseXmlString(validXmlString); assertNotNull(document); assertEquals("John & Doe", document.getElementsByTagName("name").item(0).getTextContent()); }); } @Test void givenXml_whenUsingCdataForReservedCharacters_thenSuccess() { String validXmlString = "<?xml version=\"1.1\" encoding=\"UTF-8\"?><root><name><![CDATA[John & Doe]]></name></root>"; assertDoesNotThrow(() -> { Document document = parseXmlString(validXmlString); assertNotNull(document); assertEquals("John & Doe", document.getElementsByTagName("name").item(0).getTextContent()); }); } @Test void givenXml_whenUnicodeCharacters_thenThrowException() { String invalidXmlString = "<?xml version=\"1.1\" encoding=\"UTF-8\"?><root><name>John \u001E Doe</name></root>"; assertThrowsExactly(SAXParseException.class, () -> parseXmlString(invalidXmlString)); } @Test void givenXml_whenUnicodeCharactersEscaped_thenSuccess() { String validXmlString = "<?xml version=\"1.1\" encoding=\"UTF-8\"?><root><name>John  Doe</name></root>"; assertDoesNotThrow(() -> { Document document = parseXmlString(validXmlString); assertNotNull(document); assertEquals("John \u001E Doe", document.getElementsByTagName("name").item(0).getTextContent()); }); } private Document parseXmlString(String xmlString) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); InputSource inputSource = new InputSource(new StringReader(xmlString)); return builder.parse(inputSource); } }