public virtual void testSetPriority() { JDFQueueEntry qe = q.getQueueEntry("qe2"); Assert.AreEqual(1, q.getQueueEntryPos("qe2")); q.setAutomated(true); int l = q.numEntries(null); qe.setPriority(99); Assert.AreEqual(l, q.numEntries(null)); Assert.AreEqual(1, q.getQueueEntryPos("qe2")); qe.setPriority(0); Assert.AreEqual(l, q.numEntries(null)); Assert.AreEqual(2, q.getQueueEntryPos("qe2")); q.removeChildren(ElementName.QUEUEENTRY, null, null); for (int i = 0; i < 1000; i++) { qe = q.appendQueueEntry(); qe.setQueueEntryID("q" + i); qe.setPriority((i * 7) % 100); qe.setQueueEntryStatus((i % 3 != 0) ? EnumQueueEntryStatus.Waiting : EnumQueueEntryStatus.Running); } JDFQueueEntry qeLast = null; for (int i = 0; i < 1000; i++) { qe = q.getQueueEntry(i); Assert.IsTrue(qe.CompareTo(qeLast) >= 0, "queue is sorted: " + i); qeLast = qe; } }
public virtual void testGetQueueEntryMap() { Dictionary <string, JDFQueueEntry> map = (Dictionary <string, JDFQueueEntry>)q.getQueueEntryIDMap(); Assert.AreEqual(map.Count, q.numEntries(null)); Assert.AreEqual(map["qe2"], q.getQueueEntry("qe2")); }
public virtual void testMatch() { for (int i = 0; i < 100; i++) { JDFQueueEntry qe = theQueue.appendQueueEntry(); qe.setQueueEntryID("q" + i); } filter.setMaxEntries(10); filter.match(theQueue); Assert.AreEqual(10, theQueue.numEntries(null)); filter.setQueueEntryDetails(EnumQueueEntryDetails.None); filter.match(theQueue); Assert.AreEqual(0, theQueue.numEntries(null)); }
public virtual void testCopyToResponse() { JDFResponse r = JDFJMF.createJMF(JDFMessage.EnumFamily.Response, EnumType.AbortQueueEntry).getResponse(0); JDFQueueFilter qf = (JDFQueueFilter) new JDFDoc(ElementName.QUEUEFILTER).getRoot(); qf.setMaxEntries(3); JDFQueue q2 = q.copyToResponse(r, qf); Assert.AreEqual(r.getQueue(0), q2); Assert.AreEqual(3, q2.numEntries(null)); Assert.AreNotEqual(q, q2); Assert.IsTrue(q.numEntries(null) > 3); q2 = q.copyToResponse(r, qf); Assert.AreEqual(r.getQueue(0), q2); Assert.IsNull(r.getElement("Queue", null, 1)); Assert.AreEqual(3, q2.numEntries(null)); Assert.AreNotEqual(q, q2); Assert.IsTrue(q.numEntries(null) > 3); }
public virtual void testAddEntry() { JDFResponse resp = qsp.addEntry(theQueue, null); Assert.AreEqual(0, resp.getReturnCode()); theQueue = resp.getQueue(0); Assert.AreEqual(theQueue.getQueueEntry(0).getQueueEntryStatus(), resp.getQueueEntry(0).getQueueEntryStatus()); Assert.AreEqual(theQueue.getQueueEntry(0).getQueueEntryID(), resp.getQueueEntry(0).getQueueEntryID()); Assert.AreNotEqual("", theQueue.getQueueEntry(0).getQueueEntryID()); Assert.AreEqual(1, theQueue.numEntries(null)); Assert.AreEqual(1, theQueue.numEntries(EnumQueueEntryStatus.Waiting)); qsp.setHold(true); JDFJMF jmfNew = new JDFDoc("JMF").getJMFRoot(); resp = qsp.addEntry(theQueue, jmfNew); Assert.AreEqual(jmfNew.getResponse(0), resp); Assert.AreEqual(2, theQueue.numEntries(null)); Assert.AreEqual(1, theQueue.numEntries(EnumQueueEntryStatus.Waiting)); Assert.AreEqual(1, theQueue.numEntries(EnumQueueEntryStatus.Held)); Assert.AreNotEqual(theQueue.getQueueEntry(0).getQueueEntryID(), theQueue.getQueueEntry(1).getQueueEntryID()); }
/// /// <summary> * modifies queue to match this filter by removing all non-matching entries /// * /// * make sure that this is a copy of any original queue as the incoming queue itself is not cloned /// * </summary> /// * <param name="theQueue"> the queue to modify </param> /// public virtual void match(JDFQueue theQueue) { int maxEntries = hasAttribute(AttributeName.MAXENTRIES) ? getMaxEntries() : 999999; VElement v = theQueue.getQueueEntryVector(); if (v != null) { int size = v.Count; theQueue.setQueueSize(size); for (int i = 0; i < size; i++) { JDFQueueEntry qe = (JDFQueueEntry)v[i]; match(qe); } } for (int i = theQueue.numEntries(null) - 1; i >= maxEntries; i--) { theQueue.removeChild(ElementName.QUEUEENTRY, null, maxEntries); } // always zapp first - it is faster to find }