Exemplo n.º 1
0
        ///
        ///	 * <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);
        }
Exemplo n.º 2
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());
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
                }
            }
        }
Exemplo n.º 5
0
        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"));
        }
Exemplo n.º 6
0
        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");
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
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));
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
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
            }
        }
Exemplo n.º 12
0
        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;
        }
Exemplo n.º 13
0
        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());
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
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 : "");
        }
Exemplo n.º 16
0
        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));
        }
Exemplo n.º 17
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");
     }
 }
Exemplo n.º 18
0
        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));
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 20
0
        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");
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
0
        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));
            }
        }
Exemplo n.º 23
0
        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
            }
        }