From 19b08a71a245a035e3e44f1af193d80d5eee11a4 Mon Sep 17 00:00:00 2001
From: anujgaud <146576725+anujgaud@users.noreply.github.com>
Date: Sat, 9 Mar 2024 00:08:20 +0530
Subject: [PATCH] Add InvalidCharactersUnitTest.java
---
.../InvalidCharactersUnitTest.java | 57 +++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 xml-2/src/test/java/com/baeldung/xml/invalidcharacters/InvalidCharactersUnitTest.java
diff --git a/xml-2/src/test/java/com/baeldung/xml/invalidcharacters/InvalidCharactersUnitTest.java b/xml-2/src/test/java/com/baeldung/xml/invalidcharacters/InvalidCharactersUnitTest.java
new file mode 100644
index 0000000000..0cfd4a864a
--- /dev/null
+++ b/xml-2/src/test/java/com/baeldung/xml/invalidcharacters/InvalidCharactersUnitTest.java
@@ -0,0 +1,57 @@
+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 = "John & Doe";
+ assertThrowsExactly(SAXParseException.class, () -> parseXmlString(invalidXmlString));
+ }
+
+ @Test
+ void givenXml_whenReservedCharactersEscaped_thenSuccess() {
+ String validXmlString = "John & Doe";
+
+ assertDoesNotThrow(() -> {
+ Document document = parseXmlString(validXmlString);
+
+ assertNotNull(document);
+ assertEquals("John & Doe", document.getElementsByTagName("name").item(0).getTextContent());
+ });
+ }
+
+ @Test
+ void givenXml_whenUnicodeCharacters_thenThrowException() {
+ String invalidXmlString = "John \u001E Doe";
+ assertThrowsExactly(SAXParseException.class, () -> parseXmlString(invalidXmlString));
+ }
+
+ @Test
+ void givenXml_whenUnicodeCharactersEscaped_thenSuccess() {
+ String validXmlString = "John Doe";
+ 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);
+ }
+}