/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* Oracle - initial API and implementation from Oracle TopLink | |
******************************************************************************/ | |
package org.eclipse.persistence.testing.oxm.platform; | |
import javax.xml.parsers.DocumentBuilder; | |
import javax.xml.parsers.DocumentBuilderFactory; | |
import org.eclipse.persistence.platform.xml.XMLComparer; | |
import org.eclipse.persistence.testing.oxm.OXTestCase; | |
import org.w3c.dom.Attr; | |
import org.w3c.dom.CDATASection; | |
import org.w3c.dom.Comment; | |
import org.w3c.dom.Document; | |
import org.w3c.dom.DocumentFragment; | |
import org.w3c.dom.DocumentType; | |
import org.w3c.dom.DOMImplementation; | |
import org.w3c.dom.Element; | |
import org.w3c.dom.EntityReference; | |
import org.w3c.dom.NamedNodeMap; | |
import org.w3c.dom.Node; | |
import org.w3c.dom.NodeList; | |
import org.w3c.dom.ProcessingInstruction; | |
import org.w3c.dom.Text; | |
public class XMLComparerTestCases extends OXTestCase { | |
private XMLComparer xmlComparer; | |
private DocumentBuilder documentBuilder; | |
private Document document; | |
public XMLComparerTestCases(String name) { | |
super(name); | |
} | |
public void setUp() throws Exception { | |
xmlComparer = new XMLComparer(); | |
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); | |
documentBuilder = dbf.newDocumentBuilder(); | |
document = documentBuilder.newDocument(); | |
} | |
public void testNode_BothNull() { | |
assertTrue(xmlComparer.isNodeEqual(null, null)); | |
} | |
public void testNode_controlNull() { | |
assertFalse(xmlComparer.isNodeEqual(null, document)); | |
} | |
public void testNode_testNull() { | |
assertFalse(xmlComparer.isNodeEqual(document, null)); | |
} | |
public void testNode_differentTypes() { | |
Text test = document.createTextNode("a"); | |
assertFalse(xmlComparer.isNodeEqual(document, test)); | |
} | |
public void testAttribute_same1() { | |
Attr control = document.createAttribute("a"); | |
Attr test = document.createAttribute("a"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_same2() { | |
Attr control = document.createAttributeNS("a", "b"); | |
Attr test = document.createAttributeNS("a", "b"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_same3() { | |
Attr control = document.createAttribute("a"); | |
control.setValue("c"); | |
Attr test = document.createAttribute("a"); | |
test.setValue("c"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_same4() { | |
Attr control = document.createAttributeNS("a", "b"); | |
control.setValue("c"); | |
Attr test = document.createAttributeNS("a", "b"); | |
test.setValue("c"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_same5() { | |
Attr control = document.createAttributeNS("ns1:a", "b"); | |
control.setValue("c"); | |
Attr test = document.createAttributeNS("ns1:a", "b"); | |
test.setValue("c"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_diff1() { | |
Attr control = document.createAttribute("a"); | |
Attr test = document.createAttribute("x"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_diff2a() { | |
Attr control = document.createAttributeNS("a", "b"); | |
Attr test = document.createAttribute("a"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_diff2b() { | |
Attr control = document.createAttributeNS("a", "b"); | |
Attr test = document.createAttributeNS("a", "y"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_diff2c() { | |
Attr control = document.createAttributeNS("a", "b"); | |
Attr test = document.createAttributeNS("x", "b"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_diff3a() { | |
Attr control = document.createAttribute("a"); | |
control.setValue("c"); | |
Attr test = document.createAttribute("a"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_diff3b() { | |
Attr control = document.createAttribute("a"); | |
control.setValue("c"); | |
Attr test = document.createAttribute("a"); | |
test.setValue("z"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_diff4a() { | |
Attr control = document.createAttributeNS("a", "b"); | |
control.setValue("c"); | |
Attr test = document.createAttributeNS("a", "b"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_diff4b() { | |
Attr control = document.createAttributeNS("a", "b"); | |
control.setValue("c"); | |
Attr test = document.createAttributeNS("a", "b"); | |
test.setValue("z"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_diff5a() { | |
Attr control = document.createAttributeNS("ns1:a", "b"); | |
control.setValue("c"); | |
Attr test = document.createAttributeNS("a", "b"); | |
test.setValue("c"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testAttribute_diff5b() { | |
Attr control = document.createAttributeNS("ns1:a", "b"); | |
control.setValue("c"); | |
Attr test = document.createAttributeNS("ns2:a", "b"); | |
test.setValue("c"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testCDATASection_same() { | |
CDATASection control = document.createCDATASection("a"); | |
CDATASection test = document.createCDATASection("a"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testCDATASection_diff() { | |
CDATASection control = document.createCDATASection("a"); | |
CDATASection test = document.createCDATASection("x"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testComment_same() { | |
Comment control = document.createComment("a"); | |
Comment test = document.createComment("a"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testComment_diff() { | |
Comment control = document.createComment("a"); | |
Comment test = document.createComment("b"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocument_same1() { | |
Document control = documentBuilder.newDocument(); | |
Document test = documentBuilder.newDocument(); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocument_same2() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType controlDocumentType = domImpl.createDocumentType("a", "b", "c"); | |
Document control = domImpl.createDocument(null, "a", controlDocumentType); | |
DocumentType testDocumentType = domImpl.createDocumentType("a", "b", "c"); | |
Document test = domImpl.createDocument(null, "a", testDocumentType); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocument_diff2a() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType controlDocumentType = domImpl.createDocumentType("a", "b", "c"); | |
Document control = domImpl.createDocument(null, "a", controlDocumentType); | |
Document test = documentBuilder.newDocument(); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocument_diff2b() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType controlDocumentType = domImpl.createDocumentType("a", "b", "c"); | |
Document control = domImpl.createDocument(null, "a", controlDocumentType); | |
DocumentType testDocumentType = domImpl.createDocumentType("x", "y", "z"); | |
Document test = domImpl.createDocument(null, "x", testDocumentType); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocument_diff3() { | |
Document control = documentBuilder.newDocument(); | |
Element child = control.createElement("theroot"); | |
control.appendChild(child); | |
Document test = documentBuilder.newDocument(); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentFragment_same() { | |
DocumentFragment control = document.createDocumentFragment(); | |
control.appendChild(document.createElement("a1")); | |
control.appendChild(document.createElement("a2")); | |
DocumentFragment test = document.createDocumentFragment(); | |
test.appendChild(document.createElement("a1")); | |
test.appendChild(document.createElement("a2")); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentFragment_diffa() { | |
DocumentFragment control = document.createDocumentFragment(); | |
control.appendChild(document.createElement("a1")); | |
control.appendChild(document.createElement("a2")); | |
DocumentFragment test = document.createDocumentFragment(); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentFragment_diffb() { | |
DocumentFragment control = document.createDocumentFragment(); | |
control.appendChild(document.createElement("a1")); | |
control.appendChild(document.createElement("a2")); | |
DocumentFragment test = document.createDocumentFragment(); | |
test.appendChild(document.createElement("a1")); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentFragment_diffc() { | |
DocumentFragment control = document.createDocumentFragment(); | |
control.appendChild(document.createElement("a1")); | |
control.appendChild(document.createElement("a2")); | |
DocumentFragment test = document.createDocumentFragment(); | |
test.appendChild(document.createElement("a2")); | |
test.appendChild(document.createElement("a1")); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentType_same1() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType control = domImpl.createDocumentType("a", null, null); | |
DocumentType test = domImpl.createDocumentType("a", null, null); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentType_same2() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType control = domImpl.createDocumentType("a", "b", null); | |
DocumentType test = domImpl.createDocumentType("a", "b", null); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentType_same3() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType control = domImpl.createDocumentType("a", "b", "c"); | |
DocumentType test = domImpl.createDocumentType("a", "b", "c"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentType_diff1() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType control = domImpl.createDocumentType("a", null, null); | |
DocumentType test = domImpl.createDocumentType("x", null, null); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentType_diff2a() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType control = domImpl.createDocumentType("a", "b", null); | |
DocumentType test = domImpl.createDocumentType("a", null, null); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentType_diff2b() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType control = domImpl.createDocumentType("a", "b", null); | |
DocumentType test = domImpl.createDocumentType("a", "y", null); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentType_diff3a() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType control = domImpl.createDocumentType("a", "b", "c"); | |
DocumentType test = domImpl.createDocumentType("a", "b", null); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testDocumentType_diff3b() { | |
DOMImplementation domImpl = documentBuilder.getDOMImplementation(); | |
DocumentType control = domImpl.createDocumentType("a", "b", "c"); | |
DocumentType test = domImpl.createDocumentType("a", "b", "z"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_same1() { | |
Element control = document.createElement("a"); | |
Element test = document.createElement("a"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_same2() { | |
Element control = document.createElementNS("a", "b"); | |
Element test = document.createElementNS("a", "b"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_same3() { | |
Element control = document.createElement("a"); | |
control.setAttribute("a1", "c1"); | |
control.setAttribute("a2", "c2"); | |
Element test = document.createElement("a"); | |
test.setAttribute("a1", "c1"); | |
test.setAttribute("a2", "c2"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_same4() { | |
Element control = document.createElement("a"); | |
control.appendChild(document.createElement("a1")); | |
control.appendChild(document.createElement("a2")); | |
Element test = document.createElement("a"); | |
test.appendChild(document.createElement("a1")); | |
test.appendChild(document.createElement("a2")); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_same5() { | |
Element control = document.createElementNS("ns1:a", "b"); | |
Element test = document.createElementNS("ns1:a", "b"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_same6() { | |
Element control = document.createElementNS("ns1", "ns1:a"); | |
control.setAttributeNS("ns1", "ns1:a1", "c1"); | |
control.setAttributeNS("ns1", "ns1:a2", "c2"); | |
Element test = document.createElementNS("ns1", "ns1:a"); | |
test.setAttributeNS("ns1", "ns1:a1", "c1"); | |
test.setAttributeNS("ns1", "ns1:a2", "c2"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff1() { | |
Element control = document.createElement("a"); | |
Element test = document.createElement("x"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff2a() { | |
Element control = document.createElementNS("a", "b"); | |
Element test = document.createElement("a"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff2b() { | |
Element control = document.createElementNS("a", "b"); | |
Element test = document.createElementNS("a", "y"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff2c() { | |
Element control = document.createElementNS("a", "b"); | |
Element test = document.createElementNS("x", "b"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff3a() { | |
Element control = document.createElement("a"); | |
control.setAttribute("a1", "c1"); | |
control.setAttribute("a2", "c2"); | |
Element test = document.createElement("a"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff3b() { | |
Element control = document.createElement("a"); | |
control.setAttribute("a1", "c1"); | |
control.setAttribute("a2", "c2"); | |
Element test = document.createElement("a"); | |
test.setAttribute("a1", "c1"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff3c() { | |
Element control = document.createElement("a"); | |
control.setAttribute("a1", "c1"); | |
control.setAttribute("a2", "c2"); | |
Element test = document.createElement("a"); | |
test.setAttribute("a2", "c2"); | |
test.setAttribute("a1", "c1"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff4a() { | |
Element control = document.createElement("a"); | |
control.appendChild(document.createElement("a1")); | |
control.appendChild(document.createElement("a2")); | |
Element test = document.createElement("a"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff4b() { | |
Element control = document.createElement("a"); | |
control.appendChild(document.createElement("a1")); | |
control.appendChild(document.createElement("a2")); | |
Element test = document.createElement("a"); | |
test.appendChild(document.createElement("a1")); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff4c() { | |
Element control = document.createElement("a"); | |
control.appendChild(document.createElement("a1")); | |
control.appendChild(document.createElement("a2")); | |
Element test = document.createElement("a"); | |
test.appendChild(document.createElement("a2")); | |
test.appendChild(document.createElement("a1")); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff5a() { | |
Element control = document.createElementNS("ns1:a", "b"); | |
Element test = document.createElementNS("a", "b"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff5b() { | |
Element control = document.createElementNS("ns1:a", "b"); | |
Element test = document.createElementNS("ns2:a", "b"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff6a() { | |
Element control = document.createElementNS("ns1", "ns1:a"); | |
control.setAttributeNS("ns1", "ns1:a1", "c1"); | |
control.setAttributeNS("ns1", "ns1:a2", "c2"); | |
Element test = document.createElementNS("ns1", "ns1:a"); | |
test.setAttributeNS("ns1", "ns1:a2", "c2"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff6b() { | |
Element control = document.createElementNS("ns1", "ns1:a"); | |
control.setAttributeNS("ns1", "ns1:a1", "c1"); | |
control.setAttributeNS("ns1", "ns1:a2", "c2"); | |
Element test = document.createElementNS("ns1", "ns1:a"); | |
test.setAttributeNS("ns1", "ns1:a1", "c2"); | |
test.setAttributeNS("ns1", "ns1:a2", "c2"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testElement_diff6c() { | |
Element control = document.createElementNS("ns1", "ns1:a"); | |
control.setAttributeNS("ns1", "ns1:a1", "c1"); | |
control.setAttributeNS("ns1", "ns1:a2", "c2"); | |
Element test = document.createElementNS("ns1", "ns1:a"); | |
test.setAttributeNS("ns1", "ns1:a2", "c2"); | |
test.setAttributeNS("ns1", "ns1:a3", "c3"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testEntityReference_same() { | |
EntityReference control = document.createEntityReference("a"); | |
EntityReference test = document.createEntityReference("a"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testEntityReference_diff() { | |
EntityReference control = document.createEntityReference("a"); | |
EntityReference test = document.createEntityReference("x"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testProcessingInstruction_same() { | |
ProcessingInstruction control = document.createProcessingInstruction("a", "b"); | |
ProcessingInstruction test = document.createProcessingInstruction("a", "b"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testProcessingInstruction_diffa() { | |
ProcessingInstruction control = document.createProcessingInstruction("a", "b"); | |
ProcessingInstruction test = document.createProcessingInstruction("a", "y"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testProcessingInstruction_diffb() { | |
ProcessingInstruction control = document.createProcessingInstruction("a", "b"); | |
ProcessingInstruction test = document.createProcessingInstruction("x", "b"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testText_same() { | |
Text control = document.createTextNode("a"); | |
Text test = document.createTextNode("a"); | |
assertTrue(xmlComparer.isNodeEqual(control, test)); | |
} | |
public void testText_diff() { | |
Text control = document.createTextNode("a"); | |
Text test = document.createTextNode("b"); | |
assertFalse(xmlComparer.isNodeEqual(control, test)); | |
} | |
} |