public virtual void testContainsElement() { XMLDoc d = new XMLDoc("doc", null); KElement e = d.getRoot(); KElement e1 = e.appendElement("e1"); e1.setAttribute("a", "b"); VElement v = new VElement(); v.appendUnique(e1); e1 = e.appendElement("e1"); e1.setAttribute("a", "b"); Assert.IsTrue(v.containsElement(e1), "containsElement"); Assert.IsFalse(v.Contains(e1), "contains"); e1.setText("foo"); Assert.IsFalse(v.containsElement(e1), "containsElement"); v.appendUnique(e1); Assert.AreEqual(2, v.Count, "size"); e1 = e.appendElement("e1"); e1.setAttribute("a", "b"); e1.setText("foo"); Assert.IsTrue(v.containsElement(e1), "containsElement"); e1.setText("bar"); Assert.IsFalse(v.containsElement(e1), "containsElement"); }
public virtual void testIsEqual() { XMLDoc d = new XMLDoc("doc", null); KElement e = d.getRoot(); KElement e1 = e.appendElement("e1"); e1.setAttribute("a", "b"); KElement e2 = e.appendElement("e1"); e2.setAttribute("a", "c"); KElement e3 = e.appendElement("e1"); e3.setAttribute("a", "c"); KElement e4 = e.appendElement("e1"); e4.setAttribute("a", "d"); VElement v = new VElement(); v.Add(e1); v.Add(e2); VElement v2 = new VElement(v); Assert.IsTrue(v.isEqual(v2)); v2[1] = e3; Assert.IsTrue(v.isEqual(v2)); v2[1] = e4; Assert.IsFalse(v.isEqual(v2)); }
public virtual void testWriteToStreamIndent() { XMLDoc d = new XMLDoc("a", null); KElement e = d.getRoot(); KElement b = e.appendElement("b"); ByteArrayIOStream bos = new ByteArrayIOStream(); d.write2Stream(bos, 2, false); string s = System.Text.Encoding.GetEncoding("utf-8").GetString(bos.ToArray()); Assert.IsTrue(s.IndexOf("\n ") > 0); string text = "aa\r\nbb\r\n"; b.setText(text); bos = new ByteArrayIOStream(); d.write2Stream(bos, 2, false); s = System.Text.Encoding.GetEncoding("utf-8").GetString(bos.ToArray()); Assert.IsTrue(s.IndexOf(text) > 0); JDFParser p = new JDFParser(); // JDFDoc dd = p.parseStream(bos.getInputStream()); bos = new ByteArrayIOStream(); d.write2Stream(bos, 2, false); s = System.Text.Encoding.GetEncoding("utf-8").GetString(bos.ToArray()); Assert.IsTrue(s.IndexOf(text) > 0); }
public virtual void testNSRoot() { XMLDoc d = new XMLDoc("JDF:foo", null); KElement e = d.getRoot(); Assert.IsFalse(e is JDFElement, "E K"); d = new XMLDoc("a:foo", "bar"); e = d.getRoot(); Assert.IsFalse(e is JDFElement, "E K"); d = new XMLDoc("_foo", null); e = d.getRoot(); Assert.IsFalse(e is JDFElement, "E K"); d = new XMLDoc("bar:foo", JDFConstants.JDFNAMESPACE); e = d.getRoot(); Assert.IsTrue(e is JDFElement, "E K"); d = new XMLDoc("Myfoo", JDFConstants.JDFNAMESPACE); e = d.getRoot(); Assert.IsTrue(e is JDFElement, "E K"); d = new XMLDoc("JDF:Myfoo", JDFConstants.JDFNAMESPACE); e = d.getRoot(); Assert.IsTrue(e is JDFElement, "E K"); d = new XMLDoc("Myfoo", null); e = d.getRoot(); Assert.IsFalse(e is JDFElement, "E K"); }
public virtual void testCreateBig() { for (int ii = 0; ii < 4; ii++) { XMLDoc d = ii % 2 == 0 ? new XMLDoc("foo", null) : new JDFDoc("JDF"); KElement e = d.getRoot(); long l = DateTime.Now.Ticks; for (int j = 0; j < 2000; j++) { KElement e2 = e.appendElement("AuditPool"); KElement e3 = e2.appendElement("Created"); for (int i = 33; i < 199; i++) { if (i < 2) { e3.setAttribute("k" + Convert.ToString(i), "value" + Convert.ToString(i)); } else { e3.setAttributeRaw("k" + Convert.ToString(i), "value" + Convert.ToString(i)); } } } long l2 = DateTime.Now.Ticks; Console.WriteLine("xmldoc create: " + ii + " " + (l2 - l) / 1000000); string fil = sm_dirTestDataTemp + "big" + ii + "writ.jdf"; d.write2File(fil, 2, false); FileInfo f = new FileInfo(fil); long l3 = DateTime.Now.Ticks; Console.WriteLine("xmldoc write: " + ii + " " + (l3 - l2) / 1000000 + " " + f.Length); Console.WriteLine("xmldoc total: " + ii + " " + (l3 - l) / 1000000 + "\n"); } }
public virtual void testIsDirty() { XMLDoc doc = new XMLDoc("test", null); KElement e = doc.getRoot(); Assert.IsFalse(e.isDirty()); Assert.IsFalse(doc.isDirty(null)); doc.getCreateXMLDocUserData().setDirtyPolicy(EnumDirtyPolicy.Doc); Assert.IsFalse(e.isDirty()); Assert.IsFalse(doc.isDirty(null)); e.setAttribute("foo", "bar"); Assert.IsTrue(e.isDirty()); Assert.IsTrue(doc.isDirty(null)); doc.clearDirtyIDs(); Assert.IsFalse(doc.isDirty(null)); Assert.IsFalse(e.isDirty()); KElement e2 = e.appendElement("foobar"); Assert.IsTrue(e.isDirty()); Assert.IsTrue(doc.isDirty(null)); Assert.IsTrue(e2.isDirty()); doc.getCreateXMLDocUserData().setDirtyPolicy(EnumDirtyPolicy.XPath); doc.clearDirtyIDs(); Assert.IsFalse(doc.isDirty(null)); Assert.IsFalse(e.isDirty()); e2 = e.appendElement("foobar"); Assert.IsTrue(doc.isDirty(null)); Assert.IsTrue(e.isDirty()); Assert.IsTrue(e2.isDirty()); }
public virtual void testCreateElement() { XMLDoc d = new XMLDoc("TEST", null); KElement e = (KElement)d.createElement("foo:bar"); // e.appendElement("bar:foo"); e.setAttribute("foo:at", "1"); e.appendElement("bar2"); d.getRoot().appendChild(e); Assert.AreEqual("1", e.getAttribute("foo:at")); }
public virtual void testWriteToStringIndent() { XMLDoc d = new XMLDoc("a", null); KElement e = d.getRoot(); e.appendElement("b"); string s = d.write2String(2); Assert.IsTrue(s.IndexOf("\n ") > 0); s = d.write2String(0); Assert.IsTrue(s.EndsWith("<a>\r\n<b />\r\n</a>")); }
public virtual void testCreateElementThreads() { XMLDoc d1 = new XMLDoc("JDF", null); Assert.AreEqual(typeof(KElement), d1.getRoot().GetType(), "XMLDoc only creates KElement"); JDFDoc jd = new JDFDoc("JDF"); Assert.AreEqual(typeof(JDFNode), jd.getRoot().GetType(), "JDFDoc creates typesafe elements"); XMLDoc d2 = new XMLDoc("JDF", null); Assert.AreEqual(typeof(KElement), d2.getRoot().GetType(), "XMLDoc only creates KElement - Hasmap must not be applied"); }
public virtual void testEscapeStrings() { XMLDoc d = new XMLDoc("foo", "www.foo.com"); KElement e = d.getRoot(); e.setAttribute("bar", "><&'\""); string s = d.write2String(0); Assert.IsTrue(s.IndexOf("<") > 0); Assert.IsTrue(s.IndexOf("&") > 0); Assert.IsTrue(s.IndexOf(""") > 0); }
public virtual void testgetNodeNames() { XMLDoc d = new XMLDoc("doc", null); KElement e = d.getRoot(); e.appendElement("a1"); e.appendElement("b:a2", "b"); VElement v = e.getChildElementVector(null, null, null, true, 0, true); VString s = v.getElementNameVector(false); CollectionAssert.AreEqual(new VString("a1 b:a2", " "), s); s = v.getElementNameVector(true); CollectionAssert.AreEqual(new VString("a1 a2", " "), s); }
public virtual void testNS() { JDFDoc doc = new JDFDoc("foo:bar"); string s = doc.write2String(2); Assert.IsTrue(s.IndexOf(JDFConstants.JDFNAMESPACE) > 0); XMLDoc doc2 = new XMLDoc("abc", null); string s2 = doc2.write2String(2); Assert.IsTrue(s2.IndexOf(JDFConstants.JDFNAMESPACE) < 0); doc2.getRoot().copyElement(doc.getRoot(), null); s2 = doc2.write2String(2); Assert.IsTrue(s2.IndexOf(JDFConstants.JDFNAMESPACE) > 0); }
public virtual void testForeignRoot() { XMLDoc doc = new XMLDoc("Foo", "fooNS"); KElement r = doc.getRoot(); JDFNode n = new JDFDoc("JDF").getJDFRoot(); r.copyElement(n, null); string s = doc.write2String(0); JDFParser p = new JDFParser(); JDFDoc d = p.parseString(s); Assert.IsNotNull(d.getJDFRoot()); Assert.IsNotNull(d.getRoot()); Assert.AreNotEqual(d.getRoot(), d.getJDFRoot()); }
public virtual void testAddAll() { XMLDoc d = new XMLDoc("doc", null); KElement e = d.getRoot(); VElement v = new VElement(); v.addAll((VElement)null); Assert.AreEqual(0, v.Count); v.Add(e); Assert.AreEqual(1, v.Count); v.addAll(v); Assert.AreEqual(2, v.Count); v.addAll(v); Assert.AreEqual(4, v.Count); }
public virtual void testSort() { XMLDoc d = new XMLDoc("doc", null); KElement e = d.getRoot(); KElement e1 = e.appendElement("e1"); e1.setAttribute("a", "z"); KElement e2 = e.appendElement("e1"); e2.setAttribute("a", "c"); VElement v = new VElement(); v.Add(e1); v.Add(e2); v.Sort(); Assert.AreEqual(e2, v[0]); }
public virtual void testClone() { XMLDoc doc = new XMLDoc("foobar", null); XMLDoc doc2 = (XMLDoc)doc.Clone(); Assert.IsNotNull(doc.getDocumentElement()); Assert.IsNotNull(doc2.getDocumentElement()); Assert.AreNotEqual(doc.getDocumentElement(), doc2.getDocumentElement()); KElement e = doc.getRoot(); e.setAttribute("foo", "bar"); Assert.IsTrue(e.hasAttribute("foo")); KElement e2 = doc2.getRoot(); Assert.IsFalse(e2.hasAttribute("foo")); Assert.AreEqual(doc.getDoctype(), doc2.getDoctype()); Assert.AreEqual(e2.getOwnerDocument_KElement(), doc2); Assert.AreNotEqual(doc.getXMLDocUserData(), doc2.getXMLDocUserData()); }
public virtual void testUnify() { XMLDoc d = new XMLDoc("doc", null); KElement e = d.getRoot(); KElement e1 = e.appendElement("e1"); e1.setAttribute("a", "b"); VElement v = new VElement(); v.Add(e1); v.Add(e1); e1 = e.appendElement("e1"); e1.setAttribute("a", "b"); v.Add(e1); Assert.AreEqual(3, v.Count); v.unify(); Assert.AreEqual(2, v.Count); v.unifyElement(); Assert.AreEqual(1, v.Count); }
public virtual void testSize() { Process.GetCurrentProcess(); GC.Collect(); Process.GetCurrentProcess(); GC.Collect(); Process.GetCurrentProcess(); GC.Collect(); XMLDoc d = new XMLDoc("JDF:foo", JDFConstants.JDFNAMESPACE); long memlocal = d.getDocMemoryUsed(); string s = d.write2String(0); Assert.IsTrue(memlocal + 100000 > s.Length, "mem 1"); // the gc is messy and sometimes returns +/- a few 10k Assert.IsTrue(memlocal + 100000 > s.Length, "mem 2"); d = JDFTestCaseBase.creatXMDoc(); memlocal = d.getDocMemoryUsed(); s = d.write2String(0); Assert.IsTrue(memlocal + 10000 > s.Length, "mem 3"); d = new XMLDoc("foo", null); KElement e = d.getRoot(); KElement e2 = e.appendElement("e2"); KElement e3 = e2.appendElement("e3"); for (int i = 33; i < 999; i++) { e3.setAttribute("k" + Convert.ToString(i), "value" + Convert.ToString(i)); } for (int j = 0; j < 99; j++) { e2.copyElement(e3, null); } memlocal = d.getDocMemoryUsed(); s = d.write2String(0); Assert.IsTrue(memlocal + 200000 > s.Length, "mem 4"); }
public virtual void testWriteToFileThreadWrite() { XMLDoc d = new XMLDoc("doc", null); string @out = sm_dirTestDataTemp + @"\Thread.jdf"; KElement root = d.getRoot(); for (int i = 0; i < 1000; i++) { root.appendElement("elem0").appendElement("elem1").appendElement("elem2").setAttribute("foo", "bar" + i); } MyWriteThread[] mrs = new MyWriteThread[10]; for (int i = 0; i < 10; i++) { MyWriteThread mr = new MyWriteThread(); mr.d = d; mr.iLoop = i; mrs[i] = mr; new Thread(new ThreadStart(mr.Run)).Start(); } Console.WriteLine("Writing start"); Assert.IsTrue(d.write2File(@out, 2, true)); Console.WriteLine("Writing done"); for (int i = 0; i < 10; i++) { if (mrs[i].hook != null) { // Assert.Fail("exception: "+h.e); Console.WriteLine("******** Xerces known defect: not threadsafe: " + mrs[i].hook); } } FileInfo f = new FileInfo(@out); Assert.IsTrue(f.Exists); }
public XMLErrorHandler() : base() { xmlOutput = new XMLDoc("SchemaValidationOutput", null); root = xmlOutput.getRoot(); }