/// /// * <param name="parser"> </param> /// * <param name="inSource"> </param> /// * <param name="bEraseEmpty"> /// * @return </param> /// private JDFDoc runParser(XmlSourceSupport inSource, bool bEraseEmpty) { JDFDoc doc = new JDFDoc(); try { XmlReaderSettings settings = new XmlReaderSettings(); XmlReader reader = XmlTextReader.Create(inSource.Bytes, settings); base.Load(reader); doc.setMemberDoc((DocumentJDFImpl)this); if (bEraseEmpty) { doc.getRoot().eraseEmptyNodes(true); // cleanup the XML } } catch (StackOverflowException) { m_lastExcept = null; doc = null; } catch (Exception e) { m_lastExcept = e; doc = null; } if (doc != null && m_ErrorHandler != null) { doc.setValidationResult(m_ErrorHandler.getXMLOutput()); m_ErrorHandler.cleanXML(m_SchemaLocation); } if (doc != null) { KElement root = doc.getRoot(); DocumentJDFImpl memberDocument = doc.getMemberDocument(); string namespaceURI = root.getNamespaceURI(); if (namespaceURI == null || !namespaceURI.ToLower().Contains(JDFConstants.CIP4ORG)) { memberDocument.bKElementOnly = true; memberDocument.setIgnoreNSDefault(true); } else { memberDocument.setIgnoreNSDefault(ignoreNSDefault); } } return(doc); }
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 testUmlaut() { XMLDoc d = new XMLDoc("doc", null); string dirStr = sm_dirTestDataTemp + @"dir\dir%20 Grün€"; DirectoryInfo dir = new DirectoryInfo(dirStr); if (dir.Exists) { dir.Delete(true); } dir.Create(); // get the directory path string without the relative path stuff (i.e. ..\..\) dirStr = dir.FullName; string fStr = dirStr + @"\7€ .xml"; FileInfo f = new FileInfo(fStr); Assert.IsTrue(d.write2File(fStr, 0, true)); Assert.IsTrue(f.Exists); JDFParser p = new JDFParser(); JDFDoc d2 = p.parseFile(fStr); Assert.IsNotNull(d2); Assert.AreEqual("doc", d2.getRoot().LocalName); }
public virtual void testIsValid() { DirectoryInfo testData = new DirectoryInfo(sm_dirTestData + "SampleFiles"); Assert.IsTrue(testData.Exists, "testData dir"); FileInfo[] fList = testData.GetFiles(); JDFParser p = new JDFParser(); JDFParser p2 = new JDFParser(); p2.m_SchemaLocation = sm_dirTestSchema + "JDF.xsd"; for (int i = 0; i < fList.Length; i++) { FileInfo file = fList[i]; // skip directories in CVS environments //if (file.isDirectory()) // continue; // skip schema files if (file.FullName.EndsWith(".xsd")) { continue; } Console.WriteLine("Parsing: " + file.FullName); JDFDoc jdfDoc = p.parseFile(file.FullName); Assert.IsTrue(jdfDoc != null, "parse ok"); KElement e = null; if (jdfDoc != null) { e = jdfDoc.getRoot(); Assert.IsTrue(e.isValid(EnumValidationLevel.RecursiveComplete), "valid doc: " + file.FullName); } // now with schema validation jdfDoc = p2.parseFile(file.FullName); Assert.IsTrue(jdfDoc != null, "schema parse ok"); // TODO fix handling of prerelease default attributes if (jdfDoc != null) { e = jdfDoc.getRoot(); Assert.IsTrue(e.isValid(EnumValidationLevel.RecursiveComplete), "valid doc: " + file.FullName); } } }
public virtual void testClone() { JDFDoc d = new JDFDoc("JDF"); JDFDoc d2 = (JDFDoc)d.Clone(); KElement e1 = d.getRoot(); KElement e2 = d2.getRoot(); Assert.AreNotEqual(e1, e2); e1.appendElement("foo"); Assert.IsNull(e2.getElement("foo")); }
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 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 testGetAmountPoolVector() { JDFDoc d = new JDFDoc("TestLink"); JDFResourceLink rl = (JDFResourceLink)d.getRoot(); VJDFAttributeMap vM = new VJDFAttributeMap(); vM.Add(new JDFAttributeMap("SignatureName", "1")); vM.Add(new JDFAttributeMap("SignatureName", "2")); rl.setAmountPoolAttribute("Amount", "42", null, vM); Assert.AreEqual("42", rl.getAmountPoolAttribute("Amount", null, vM)); vM.Add(new JDFAttributeMap("SignatureName", "3")); Assert.IsNull(rl.getAmountPoolAttribute("Amount", null, vM)); }
public virtual void testGetAmountPoolDouble() { JDFDoc d = new JDFDoc("TestLink"); JDFResourceLink rl = (JDFResourceLink)d.getRoot(); rl.setActualAmount(12, new JDFAttributeMap("SignatureName", "1")); rl.setActualAmount(14, new JDFAttributeMap("SignatureName", "2")); Assert.AreEqual(26.0, rl.getActualAmount(null), 0.1); rl.setAmount(42.0, null); Assert.AreEqual(42.0, rl.getAmount(new JDFAttributeMap("SignatureName", "2")), 0.1, "root attribute is incorrectly retrieved"); rl.removeChild(ElementName.AMOUNTPOOL, null, 0); rl.setActualAmount(33, null); Assert.AreEqual(33.0, rl.getActualAmount(null), 0.1); }
public virtual void testCopyElement() { JDFDoc d = new JDFDoc("d1"); JDFElement e = (JDFElement)d.getRoot(); JDFDoc d2 = new JDFDoc("d2"); JDFElement e2 = (JDFElement)d2.getRoot(); KElement e3 = e.copyElement(e2, null); JDFParser p = new JDFParser(); JDFDoc dp = p.parseString("<Device xmlns=\"www.CIP4.org/JDFSchema_1_1\"/>"); KElement ep = dp.getRoot(); KElement e4 = e.copyElement(ep, null); Assert.AreEqual(e4.hasAttribute("xmlns"), ep.hasAttribute("xmlns")); Assert.AreEqual(e3.getNamespaceURI(), e.getNamespaceURI()); Assert.IsFalse(d.ToString().IndexOf("xmlns=\"\"") >= 0); }
public virtual void testAppendAmountPool() { JDFDoc d = new JDFDoc("MediaLink"); JDFResourceLink rl = (JDFResourceLink)d.getRoot(); Assert.IsNotNull(rl.appendAmountPool()); try { rl.appendAmountPool(); Assert.Fail("AmountPool #2"); } catch (JDFException) { // nop } }
private void _setUp() { // setup the fixture string xmlFile = "bookintent.jdf"; // test jdf functions // ================== JDFParser p = new JDFParser(); m_jdfDoc = p.parseFile(sm_dirTestData + xmlFile); Assert.IsTrue(m_jdfDoc != null, sm_dirTestData + xmlFile + ": Parse Error"); m_jdfRoot = (JDFNode)m_jdfDoc.getRoot(); m_kElement = m_jdfRoot.getChildByTagName("Dimensions", "", 0, null, false, true); m_jdfElement = (JDFElement)m_kElement; }
public virtual void testAppendElement() { JDFDoc d = new JDFDoc("JDF"); KElement r = d.getRoot(); KElement e = r.appendElement("e"); Assert.AreEqual(e.getNamespaceURI(), JDFElement.getSchemaURL()); KElement foo = e.appendElement("pt:foo", "www.pt.com"); Assert.AreEqual("www.pt.com", foo.getNamespaceURI()); KElement bar = foo.appendElement("bar"); Assert.IsNotNull(bar.getNamespaceURI()); KElement foo2 = bar.appendElement("pt:foo", "www.pt.com"); Assert.AreEqual("www.pt.com", foo2.getNamespaceURI()); }
public virtual void testGetMinAmountPoolAttribute() { JDFDoc d = new JDFDoc("TestLink"); JDFResourceLink rl = (JDFResourceLink)d.getRoot(); rl.setActualAmount(12, new JDFAttributeMap("SignatureName", "1")); rl.setActualAmount(14, new JDFAttributeMap("SignatureName", "2")); Assert.AreEqual(12.0, rl.getMinAmountPoolAttribute("ActualAmount", null, null, 42), 0.0); JDFAttributeMap map = new JDFAttributeMap("SignatureName", "3"); map.put("SheetName", "a"); rl.setActualAmount(24, map); map.put("SheetName", "b"); rl.setActualAmount(26, map); Assert.AreEqual(24.0, rl.getMinAmountPoolAttribute("ActualAmount", null, new JDFAttributeMap("SignatureName", "3"), 42), 0.0); }
public virtual void testParseNoNS() { XMLDoc d = new XMLDoc("TEST", null); string fn = sm_dirTestDataTemp + "testParseNoNS.xml"; d.write2File(fn, 2, true); JDFParser p = new JDFParser(); JDFDoc d2 = p.parseFile(fn); KElement root = d2.getRoot(); // Assert.IsNull(root.getNamespaceURI()); Assert.IsFalse(d2.ToString().IndexOf("xmlns=\"\"") >= 0); Assert.IsFalse(d.ToString().IndexOf("xmlns=\"\"") >= 0); Assert.IsFalse(root.ToString().IndexOf("xmlns=\"\"") >= 0); KElement foo = root.appendElement("foofoo"); Assert.IsNull(foo.getNamespaceURI() == "" ? null : ""); }
public virtual void testSetAmountPoolAttribute() { JDFDoc d = new JDFDoc("ResourceLinkPool"); JDFResourceLinkPool rlp = (JDFResourceLinkPool)d.getRoot(); JDFResourceLink foo = (JDFResourceLink)rlp.appendElement("FooLink"); VJDFAttributeMap vPart = new VJDFAttributeMap(); vPart.Add(new JDFAttributeMap()); foo.setAmountPoolAttribute("blub", "123", null, vPart); Assert.AreEqual("123", foo.getAttribute("blub")); vPart = new VJDFAttributeMap(); JDFAttributeMap map = new JDFAttributeMap("SheetName", "b"); vPart.Add(map); foo.setAmountPoolAttribute("blub", "123", null, vPart); Assert.IsNull(foo.getAttribute("blub", null, null)); Assert.AreEqual("123", foo.getAmountPoolAttribute("blub", null, map, 0)); }
public virtual void testSchemaDefault() { for (int i = 0; i < 3; i++) { JDFDoc doc = new JDFDoc("JDF"); JDFNode n = (JDFNode)doc.getRoot(); Assert.IsFalse(n.hasAttribute(AttributeName.TEMPLATE), "no schema - no default"); string s = doc.write2String(2); JDFParser parser = new JDFParser(); JDFDoc docNoSchema = parser.parseString(s); JDFNode as2 = (JDFNode)docNoSchema.getRoot(); Assert.IsFalse(as2.hasAttribute(AttributeName.TEMPLATE), "no schema - no default"); parser.m_SchemaLocation = sm_dirTestSchema + @"\JDF.xsd"; JDFDoc docSchema = parser.parseString(s); JDFNode as3 = (JDFNode)docSchema.getRoot(); Assert.IsTrue(as3.hasAttribute(AttributeName.TEMPLATE), "schema parse - default is set"); Assert.IsFalse(as3.getTemplate(), "schema parse - default is set"); } }
public virtual void testMatchesPathKElement() { JDFDoc doc = new JDFDoc("Test"); // make sure we call jdf methods KElement root = doc.getRoot(); KElement a = root.appendElement("a"); root.appendElement("b"); KElement a2 = root.appendElement("a"); KElement a3 = root.appendElement("a"); a.setAttribute("att", "42"); Assert.IsTrue(a.matchesPath("//a", false)); Assert.IsTrue(a.matchesPath("/Test/a", false)); Assert.IsTrue(a.matchesPath("/Test/a[1]", false)); // Java to C# Conversion - Don't know why this fails, other tests pass. //Assert.IsTrue(a.matchesPath("/Test/a[@att=\"42\"]", false)); Assert.IsTrue(a2.matchesPath("/Test/a[2]", false)); Assert.IsTrue(a3.matchesPath("/Test/a[3]", false)); Assert.IsFalse(a3.matchesPath("/Test/a[@att=\"*\"]", false)); Assert.IsTrue(a.matchesPath("/Test/a[@att=\"*\"]", false)); }
public virtual void testGetChildElementVector_or() { JDFDoc d = new JDFDoc("AmountPool"); JDFAmountPool ap = (JDFAmountPool)d.getRoot(); JDFAttributeMap partMap = new JDFAttributeMap("a", "a1"); partMap.put("b", "b1"); JDFPartAmount pa1 = ap.appendPartAmount(); pa1.setAttributes(partMap); partMap.put("a", "a2"); partMap.put("b", "b2"); JDFPartAmount pa2 = ap.appendPartAmount(); pa2.setAttributes(partMap); VElement v = ap.getChildElementVector(ElementName.PARTAMOUNT, null, partMap, false, 0, false); Assert.AreEqual(1, v.Count); partMap.put("b", "b1"); v = ap.getChildElementVector(ElementName.PARTAMOUNT, null, partMap, false, 0, false); Assert.AreEqual(2, v.Count); }
public virtual void testContextSensitiveElementNames() { // HoleType, Method, Shape and Surface are context sensitive elements // The type casts below should all succeed JDFDoc doc = new JDFDoc(ElementName.JDF); KElement rootNode = doc.getRoot(); JDFStringSpan kelem21 = (JDFStringSpan)rootNode.appendElement("HoleType", null); kelem21.setAttribute("Type", "org.cip4.jdflib.span.JDFStringSpan"); KElement kelem22 = rootNode.appendElement("RingBinding", null); JDFSpanHoleType kelem23 = (JDFSpanHoleType)kelem22.appendElement("HoleType", null); kelem23.setAttribute("Type", "org.cip4.jdflib.span.JDFSpanHoleType"); JDFNameSpan kelem11 = (JDFNameSpan)rootNode.appendElement("Method", null); kelem11.setAttribute("Type", "org.cip4.jdflib.span.JDFNameSpan"); KElement kelem12 = rootNode.appendElement("InsertingIntent", null); JDFSpanMethod kelem13 = (JDFSpanMethod)kelem12.appendElement("Method", null); kelem13.setAttribute("Type", "org.cip4.jdflib.span.JDFSpanMethod"); JDFShapeElement kelem4 = (JDFShapeElement)rootNode.appendElement("Shape", null); kelem4.setAttribute("Type", "org.cip4.jdflib.resource.JDFShapeElement"); KElement kelem5 = rootNode.appendElement("BookCase", null); JDFSpanShape kelem6 = (JDFSpanShape)kelem5.appendElement("Shape", null); kelem6.setAttribute("Type", "org.cip4.jdflib.span.JDFSpanShape"); JDFSurface kelem7 = (JDFSurface)rootNode.appendElement("Surface", null); kelem7.setAttribute("Type", "org.cip4.jdflib.resource.process.JDFSurface"); KElement kelem8 = rootNode.appendElement("LaminatingIntent", null); JDFSpanSurface kelem9 = (JDFSpanSurface)kelem8.appendElement("Surface", null); kelem9.setAttribute("Type", "org.cip4.jdflib.span.JDFSpanSurface"); }
public virtual void testStatusEquals() { // test if the auto classes implement the correct status // compare EnumNodeStatus JDFAuditPool myAuditPool = null; JDFDoc jdfDoc = new JDFDoc(ElementName.JDF); JDFNode jdfRoot = (JDFNode)jdfDoc.getRoot(); Assert.IsTrue(jdfRoot != null, "No Root found"); if (jdfRoot == null) { return; // soothe findbugs ;) } JDFAncestor ancestor = jdfRoot.appendAncestorPool().appendAncestor(); ancestor.setStatus(EnumNodeStatus.Completed); myAuditPool = jdfRoot.getCreateAuditPool(); JDFPhaseTime phaseTime = myAuditPool.addPhaseTime(JDFElement.EnumNodeStatus.Completed, null, null); JDFSpawned spawned = myAuditPool.addSpawned(jdfRoot, null, null, null, null); spawned.setStatus(JDFElement.EnumNodeStatus.Completed); Assert.AreEqual(spawned.getStatus(), phaseTime.getStatus()); Assert.AreEqual(spawned.getStatus(), ancestor.getStatus()); JDFDoc jmfDoc = new JDFDoc(ElementName.JMF); JDFJMF jmfRoot = jmfDoc.getJMFRoot(); Assert.IsTrue(jmfRoot != null, "No Root found"); if (jmfRoot == null) { return; // soothe findbugs ;) } JDFAcknowledge acknowledge = jmfRoot.appendAcknowledge(); acknowledge.setType("PipePush"); // Type is required and its existance // is validated for messages JDFJobPhase jobPhase = acknowledge.appendJobPhase(); jobPhase.setStatus(EnumNodeStatus.Completed); JDFMessage message = jmfRoot.appendMessageElement(EnumFamily.Command, null); message.setType("PipePush"); // Type is required and its existance is // validated for messages JDFPipeParams pipeParams = message.appendPipeParams(); pipeParams.setStatus(EnumNodeStatus.Completed); Assert.AreEqual(jobPhase.getStatus(), pipeParams.getStatus()); Assert.AreEqual(spawned.getStatus(), pipeParams.getStatus()); // compare EnumResStatus JDFDoc responseDoc = new JDFDoc(ElementName.RESPONSE); JDFResponse responseRoot = (JDFResponse)responseDoc.getRoot(); Assert.IsTrue(responseRoot != null, "No Root found"); if (responseRoot == null) { return; // soothe findbugs ;) } responseRoot.setType(ElementName.RESOURCE); JDFResourceInfo resInfo = responseRoot.appendResourceInfo(); resInfo.setResStatus(EnumResStatus.Available); JDFDoc commandDoc = new JDFDoc(ElementName.COMMAND); JDFCommand commandRoot = (JDFCommand)commandDoc.getRoot(); Assert.IsTrue(commandRoot != null, "No Root found"); if (commandRoot == null) { return; // soothe findbugs ;) } commandRoot.setType(ElementName.RESOURCE); JDFResourceCmdParams resCmdParams = commandRoot.appendResourceCmdParams(); resCmdParams.setResStatus(EnumResStatus.Available); Assert.AreEqual(resInfo.getStatus(), resCmdParams.getStatus()); // check EnumQueueStatus JDFDoc queueDoc = new JDFDoc(ElementName.QUEUE); JDFQueue queueRoot = (JDFQueue)queueDoc.getRoot(); Assert.IsTrue(queueRoot != null, "No Root found"); if (queueRoot == null) { return; // soothe findbugs ;) } queueRoot.setQueueStatus(EnumQueueStatus.Running); // check EnumQueueEntryStatus JDFQueueEntry queueEntry = queueRoot.appendQueueEntry(); queueEntry.setQueueEntryStatus(EnumQueueEntryStatus.Running); }
public virtual void testPerformance() { { JDFDoc doc = new JDFDoc("JDF"); KElement root = doc.getRoot(); long l = DateTime.Now.Ticks; // Java to C# Conversion - Divide number of tests by 1000 for now for (int i = 0; i < 10; i++) { root.appendElement("Elem00"); } Console.WriteLine("Append With factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; string s = doc.write2String(0); Console.WriteLine("Write With factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; JDFParser p = new JDFParser(); Console.WriteLine("Parser With factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; p.parseString(s); Console.WriteLine("Parse With factory: " + (DateTime.Now.Ticks - l)); } { JDFDoc doc = new JDFDoc("JDF"); KElement root = doc.getRoot(); ((DocumentJDFImpl)root.OwnerDocument).bKElementOnly = true; long l = DateTime.Now.Ticks; // Java to C# Conversion - Divide number of tests by 1000 for now for (int i = 0; i < 10; i++) { root.appendElement("Elem00"); } Console.WriteLine("Append Without factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; string s = doc.write2String(0); Console.WriteLine("Write Without factory: " + (DateTime.Now.Ticks - l) + " " + s.Length); l = DateTime.Now.Ticks; JDFParser p = new JDFParser(); Console.WriteLine("Parser Without factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; p.parseString(s); Console.WriteLine("Parse Without factory: " + (DateTime.Now.Ticks - l)); } { JDFDoc doc = new JDFDoc("JDF"); KElement root = doc.getRoot(); ((DocumentJDFImpl)root.OwnerDocument).bKElementOnly = true; long l = DateTime.Now.Ticks; // Java to C# Conversion - Divide number of tests by 1000 for now for (int i = 0; i < 10; i++) { root.appendElement("Elem00"); } Console.WriteLine("Append00 Without factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; string s = doc.write2String(0); Console.WriteLine("Write00 Without factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; JDFParser p = new JDFParser(); Console.WriteLine("Parser00 Without factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; p.parseString(s); Console.WriteLine("Parse00 Without factory: " + (DateTime.Now.Ticks - l)); } { JDFDoc doc = new JDFDoc("JDF"); KElement root = doc.getRoot(); long l = DateTime.Now.Ticks; // Java to C# Conversion - Divide number of tests by 1000 for now for (int i = 0; i < 10; i++) { root.appendElement("Elem00"); } Console.WriteLine("Append With factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; string s = doc.write2String(0); Console.WriteLine("Write With factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; JDFParser p = new JDFParser(); Console.WriteLine("Parser With factory: " + (DateTime.Now.Ticks - l)); l = DateTime.Now.Ticks; p.parseString(s); Console.WriteLine("Parse With factory: " + (DateTime.Now.Ticks - l)); } }
public virtual void testDirtyIDs() { // -i bookintent.jdf -o spawned.jdf -p 4 string xmlFile = "bookintent.jdf"; string outFile = "spawned.jdf"; string strPartID = "4"; JDFParser p = new JDFParser(); JDFDoc jdfDocIn = p.parseFile(sm_dirTestData + xmlFile); Assert.IsTrue(jdfDocIn != null); if (jdfDocIn == null) { return; // soothe findbugs ;) } XMLDocUserData xmlUserData = jdfDocIn.getCreateXMLDocUserData(); xmlUserData.setDirtyPolicy(XMLDocUserData.EnumDirtyPolicy.ID); JDFNode rootIn = (JDFNode)jdfDocIn.getRoot(); JDFNode nodeToSpawn; if (strPartID.Equals("")) { nodeToSpawn = rootIn; } else { nodeToSpawn = rootIn.getJobPart(strPartID, ""); } if (nodeToSpawn == null) { Assert.Fail("No such JobPartID: " + strPartID); } else { ArrayList vRWResources = new ArrayList(); vRWResources.Add("Component"); vRWResources.Add("RunList"); VJDFAttributeMap vSpawnParts = new VJDFAttributeMap(); JDFSpawn spawn = new JDFSpawn(nodeToSpawn); JDFNode node = spawn.spawn(xmlFile, outFile, vRWResources, vSpawnParts, false, false, false, false); // neu gespawntes FileInfo rausschreiben JDFNode rootOut = node; XMLDoc docOut = rootOut.getOwnerDocument_KElement(); docOut.write2File(sm_dirTestDataTemp + outFile, 0, true); // verändertes Ausgangsfile rausschreiben string strOutXMLFile = "_" + xmlFile; rootIn.eraseEmptyNodes(true); jdfDocIn.write2File(sm_dirTestDataTemp + strOutXMLFile, 0, true); Assert.IsTrue(true, "SpawnJDF ok"); // test, if all changed nodes are in our list // Java to C# Conversion - Java version indicated there should be 5 Dirty IDs, but it only checks for 4. // C# version returns 4 Dirty IDs. Set it to 4 for now. VString vstrDirtyIDs = jdfDocIn.getDirtyIDs(); Assert.AreEqual(4, vstrDirtyIDs.Count); Assert.IsTrue(vstrDirtyIDs.Contains("n0014")); // audit pool was added Assert.IsTrue(vstrDirtyIDs.Contains("n0016")); // status changed: // waiting --> spawned Assert.IsTrue(vstrDirtyIDs.Contains("r0017")); //SpawnStatus="SpawnedRW" // added Assert.IsTrue(vstrDirtyIDs.Contains("r0018")); // SizeIntent added } }