public virtual void testAddPhaseTime() { JDFDoc doc = new JDFDoc("JDF"); JDFNode n = doc.getJDFRoot(); JDFAuditPool ap = n.getCreateAuditPool(); JDFProcessRun pr = ap.addProcessRun(EnumNodeStatus.Completed, null, null); JDFPhaseTime pt0 = null; for (int i = 0; i < 10; i++) { JDFPhaseTime pt = ap.addPhaseTime(EnumNodeStatus.InProgress, null, null); if (i == 0) { pt0 = pt; } JDFDate start = new JDFDate(); start.TimeInMillis = start.TimeInMillis + i * 1000 * 1000; pt.setStart(start); JDFDate end = new JDFDate(); end.TimeInMillis = end.TimeInMillis + 100 * 1000 + i * 1000 * 1000; pt.setEnd(end); Assert.AreEqual(100, pt.getDuration().Duration, 1.0); pr.addPhase(pt); Assert.AreEqual((i + 1) * 100, pr.getDuration().Duration, 1.0); if (pt0 != null) { Assert.AreEqual(pr.getStart(), pt0.getStart()); } Assert.AreEqual(pr.getEnd(), pt.getEnd()); } }
public virtual void testModulesUpdate() { JDFAuditPool ap = n.getCreateAuditPool(); ap.appendXMLComment("JDF 1.3 compatible auditing of module phases with updates", null); JDFPhaseTime pt = ap.addPhaseTime(EnumNodeStatus.Setup, null, null); JDFPhaseTime pt2 = ap.addPhaseTime(EnumNodeStatus.InProgress, null, null); JDFPhaseTime pt3 = ap.addPhaseTime(EnumNodeStatus.InProgress, null, null); JDFDate date = new JDFDate(); JDFModulePhase mpRIP = pt.appendModulePhase(); mpRIP.setModuleType("Imaging"); JDFModulePhase mpJob = pt.appendModulePhase(); mpJob.setModuleType("Manual"); mpJob.setStatus(EnumNodeStatus.InProgress); JDFModulePhase mpPrint = pt.appendModulePhase(); mpPrint.setModuleType("Printing"); mpRIP.setStatus(EnumNodeStatus.InProgress); pt.setStart(date); mpRIP.setStart(date); date.addOffset(0, 5, 0, 0); pt.setEnd(date); pt2.copyElement(mpRIP, null); pt2.copyElement(mpJob, null); pt2.copyElement(mpPrint, null); mpPrint.setStatus(EnumNodeStatus.InProgress); pt2.setStart(date); mpPrint.setStart(date); date.addOffset(0, 30, 0, 0); mpRIP.setEnd(date); date.addOffset(0, 70, 0, 0); pt2.setEnd(date); mpPrint.setEnd(date); pt3.copyElement(mpRIP, null); pt3.copyElement(mpJob, null); pt3.copyElement(mpPrint, null); doc.write2File(sm_dirTestDataTemp + "DigiPrintModuleUpdate.jdf", 2, false); }
public virtual void testModuleIDs() { JDFDoc doc = new JDFDoc("JDF"); JDFNode n = doc.getJDFRoot(); JDFAuditPool ap = n.getCreateAuditPool(); JDFPhaseTime pt = ap.addPhaseTime(EnumNodeStatus.InProgress, null, null); pt.setModules(new VString("m1 m2", " "), new VString("RIP Press", " ")); Assert.AreEqual(2, pt.numChildElements(ElementName.MODULEPHASE, null)); Assert.AreEqual("m1", pt.getModulePhase(0).getModuleID()); Assert.AreEqual("m2", pt.getModulePhase(1).getModuleID()); Assert.AreEqual("Press", pt.getModulePhase(1).getModuleType()); // Assert.IsTrue(pt.isValid(EnumValidationLevel.Complete)); }
public virtual void testGetDuration() { JDFDoc doc = new JDFDoc("JDF"); JDFNode n = doc.getJDFRoot(); JDFAuditPool ap = n.getCreateAuditPool(); JDFPhaseTime pt = ap.addPhaseTime(EnumNodeStatus.InProgress, null, null); pt.setStart(new JDFDate()); JDFDate end = new JDFDate(); end.TimeInMillis = end.TimeInMillis + 100 * 1000; pt.setEnd(end); Assert.AreEqual(100.0, pt.getDuration().Duration, 1.0); }
public virtual void testModules() { JDFAuditPool ap = n.getCreateAuditPool(); ap.appendXMLComment("JDF 1.3 compatible auditing of module phases - note that modulephase start and end times are set outside of the phasetime start and end times", null); JDFPhaseTime pt = ap.addPhaseTime(EnumNodeStatus.Setup, null, null); JDFPhaseTime pt2 = ap.addPhaseTime(EnumNodeStatus.InProgress, null, null); JDFDate date = new JDFDate(); JDFModulePhase mpRIP = pt.appendModulePhase(); JDFModulePhase mpRIP2 = pt2.appendModulePhase(); mpRIP.setStatus(EnumNodeStatus.InProgress); mpRIP2.setStatus(EnumNodeStatus.InProgress); mpRIP2.setDescriptiveName("This ModulePhase is actually the same as the initial ModulePhase in the setup PhaseTime"); mpRIP.setModuleType("Imaging"); mpRIP2.setModuleType("Imaging"); pt.setStart(date); mpRIP.setStart(date); mpRIP2.setStart(date); date.addOffset(0, 5, 0, 0); pt.setEnd(date); JDFModulePhase mpPrint = pt2.appendModulePhase(); mpPrint.setStatus(EnumNodeStatus.InProgress); pt2.setStart(date); mpPrint.setStart(date); date.addOffset(0, 30, 0, 0); mpRIP.setEnd(date); mpRIP2.setEnd(date); date.addOffset(0, 70, 0, 0); pt2.setEnd(date); mpPrint.setEnd(date); mpPrint.setModuleType("Printer"); doc.write2File(sm_dirTestDataTemp + "DigiPrintModule1.jdf", 2, false); }
public virtual void testGetLink() { JDFDoc doc = new JDFDoc("JDF"); JDFNode n = doc.getJDFRoot(); JDFResource r = n.addResource("www.foo", EnumResourceClass.Parameter, EnumUsage.Input, null, null, "www.www.com", null); JDFResourceLink rl = n.getLink(r, null); VElement vRL = new VElement(); vRL.Add(rl); JDFAuditPool ap = n.getCreateAuditPool(); JDFPhaseTime pt = ap.addPhaseTime(EnumNodeStatus.InProgress, null, null); pt.appendComment().setText("foo"); pt.setLinks(vRL); pt.setStart(new JDFDate()); Assert.AreEqual(rl.ToString(), pt.getLink(0).ToString()); }
public virtual void testModules14() { VString v = new VString("orig fullList end", null); for (int i = 0; i < v.Count; i++) { reSetUp(); string testType = v.stringAt(i); JDFAuditPool ap = n.getCreateAuditPool(); ap.appendXMLComment("JDF 1.3 incompatible auditing of module phases the REQUIRED time attributes are not set in the ModulePhase elements\n" + "- note that phases may now arbitrarily overlap\n" + "The modulePhase elements now only specify which modules are involved, times are all defined by the phasetime proper", null); ap.appendXMLComment("The following phaseTime is executed by one module - the RIP,which executes two process steps (Interpreting and Rendering)", null); JDFPhaseTime ptRIP = ap.addPhaseTime(EnumNodeStatus.Setup, null, null); JDFDate date = new JDFDate(); ptRIP.setStart(date); JDFDoc jmfDoc = new JDFDoc("JMF"); JDFJMF jmf = jmfDoc.getJMFRoot(); jmf.setDescriptiveName("Initial phase when the RIP starts up"); JDFSignal signal = jmf.appendSignal(JDFMessage.EnumType.Status); JDFDeviceInfo di = signal.appendDeviceInfo(); JDFJobPhase jpRIP = di.appendJobPhase(); di.setDeviceStatus(EnumDeviceStatus.Setup); jpRIP.setStartTime(date); jpRIP.setStatus(EnumNodeStatus.Setup); jpRIP.setJobID(n.getJobID(true)); jpRIP.setJobPartID(n.getJobPartID(true)); JDFModuleStatus msRIP = jpRIP.appendModuleStatus(); msRIP.setCombinedProcessIndex(new JDFIntegerList("0 1")); msRIP.setModuleType("Imaging"); msRIP.setModuleID("ID_Imaging"); JDFModulePhase mpRIP = ptRIP.appendModulePhase(); mpRIP.setCombinedProcessIndex(new JDFIntegerList("0 1")); mpRIP.setModuleType("Imaging"); mpRIP.setModuleID("ID_Imaging"); JDFModuleStatus msPrint = di.appendModuleStatus(); msPrint.setCombinedProcessIndex(new JDFIntegerList("2")); msPrint.setModuleType("Printer"); msPrint.setModuleID("ID_Printer"); JDFModuleStatus msStitch = di.appendModuleStatus(); msStitch.setCombinedProcessIndex(new JDFIntegerList("3")); msStitch.setModuleType("Stitcher"); msStitch.setModuleID("ID_Stitcher"); jmfDoc.write2File(sm_dirTestDataTemp + "moduleStatus" + testType + "0.jmf", 2, false); date.addOffset(0, 5, 0, 0); jmf.setTimeStamp(date); JDFJobPhase jpPrint = di.appendJobPhase(); di.setDeviceStatus(EnumDeviceStatus.Running); jpPrint.setStatus(EnumNodeStatus.InProgress); jpPrint.setStartTime(date); jpPrint.setJobID(n.getJobID(true)); jpPrint.setJobPartID(n.getJobPartID(true)); msPrint = jpPrint.appendModuleStatus(); msPrint.setCombinedProcessIndex(new JDFIntegerList("2")); msPrint.setModuleType("Printer"); msPrint.setModuleID("ID_Printer"); msStitch = jpPrint.appendModuleStatus(); msStitch.setCombinedProcessIndex(new JDFIntegerList("3")); msStitch.setModuleType("Stitcher"); msStitch.setModuleID("ID_Stitcher"); di.removeChildren(ElementName.MODULESTATUS, null, null); jmf.setDescriptiveName("Phase when the Printer and Finisher start up; RIP is still RIPping"); jmfDoc.write2File(sm_dirTestDataTemp + "moduleStatus" + testType + "1.jmf", 2, false); ap.appendXMLComment("The following phaseTime is executed by two modules - sticher and printer", null); JDFPhaseTime ptPrint = ap.addPhaseTime(EnumNodeStatus.InProgress, null, null); JDFModulePhase mpPrint = ptPrint.appendModulePhase(); mpPrint.setCombinedProcessIndex(new JDFIntegerList("2")); mpPrint.setModuleType("Printer"); mpPrint.setModuleID("ID_Printer"); ptPrint.setStart(date); JDFModulePhase mpStitch = ptPrint.appendModulePhase(); mpStitch.setCombinedProcessIndex(new JDFIntegerList("3")); mpStitch.setModuleType("Stitcher"); mpStitch.setModuleID("ID_Stitcher"); date.addOffset(0, 30, 0, 0); ptRIP.setEnd(date); JDFDeviceInfo di2 = null; if (i < 2) { JDFSignal signal2 = jmf.appendSignal(JDFMessage.EnumType.Status); di2 = (JDFDeviceInfo)signal2.copyElement(di, null); di2.removeChild(ElementName.JOBPHASE, null, 0); if (i == 1) { JDFModuleStatus directMSRip = (JDFModuleStatus)di2.copyElement(msRIP, null); directMSRip.setDeviceStatus(EnumDeviceStatus.Idle); } } else { jpRIP.setAttribute("EndTime", date.DateTimeISO); jpRIP.setDescriptiveName("Added EndTime to explicitly close phase"); } jmf.setTimeStamp(date); jmf.setDescriptiveName("Phase when the RIP has completed, Printer and Finisher are still RIPping"); jmfDoc.write2File(sm_dirTestDataTemp + "moduleStatus" + testType + "2.jmf", 2, false); date.addOffset(0, 70, 0, 0); ptPrint.setEnd(date); jmf.setTimeStamp(date); if (i < 2) { signal.deleteNode(); signal = jmf.appendSignal(JDFMessage.EnumType.Status); di = (JDFDeviceInfo)signal.copyElement(di2, null); di.removeChild(ElementName.JOBPHASE, null, 0); di.removeChild(ElementName.MODULESTATUS, null, 0); di.setDeviceStatus(EnumDeviceStatus.Idle); signal.appendXMLComment("Or should the complete list of modules also be specified here?", di); } else { jpRIP.deleteNode(); jpPrint.setAttribute("EndTime", date.DateTimeISO); jpPrint.setDescriptiveName("Added EndTime to explicitly close phase"); } jmf.setDescriptiveName("Phase when the Printer and Finisher have completed"); jmfDoc.write2File(sm_dirTestDataTemp + "moduleStatus" + testType + "3.jmf", 2, false); doc.write2File(sm_dirTestDataTemp + "DigiPrintModule.1.4" + testType + ".jdf", 2, false); } }
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); }