public virtual void TestDrainTo() { var queue = new BlockingQueue(); queue.Add(new object()); queue.Add(new object()); var list = new Collection4(); Assert.AreEqual(2, queue.DrainTo(list)); Assert.AreEqual(2, list.Size()); Assert.IsFalse(queue.HasNext()); }
public virtual void TestNext() { IQueue4 queue = new BlockingQueue(); string[] data = new string[] { "a", "b", "c", "d" }; queue.Add(data[0]); Assert.AreSame(data[0], queue.Next()); queue.Add(data[1]); queue.Add(data[2]); Assert.AreSame(data[1], queue.Next()); Assert.AreSame(data[2], queue.Next()); }
public virtual void TestTimeoutNext() { BlockingQueue queue = new BlockingQueue(); Assert.IsNull(AssertTakeAtLeast(200, new _IClosure4_35(queue))); object obj = new object(); queue.Add(obj); Assert.AreSame(obj, AssertTakeLessThan(50, new _IClosure4_46(queue))); Assert.IsNull(AssertTakeAtLeast(200, new _IClosure4_53(queue))); }
public virtual void TestIterator() { IQueue4 queue = new BlockingQueue(); string[] data = new string[] { "a", "b", "c", "d" }; for (int idx = 0; idx < data.Length; idx++) { AssertIterator(queue, data, idx); queue.Add(data[idx]); AssertIterator(queue, data, idx + 1); } }
public virtual void TestStop() { BlockingQueue queue = new BlockingQueue(); string[] data = new string[] { "a", "b", "c", "d" }; queue.Add(data[0]); Assert.AreSame(data[0], queue.Next()); BlockingQueueTestCase.StopThread notifyThread = new BlockingQueueTestCase.StopThread (queue); notifyThread.Start(); Assert.Expect(typeof(BlockingQueueStoppedException), new _ICodeBlock_110(queue)); }
public virtual void TestBlocking() { IQueue4 queue = new BlockingQueue(); string[] data = new string[] { "a", "b", "c", "d" }; queue.Add(data[0]); Assert.AreSame(data[0], queue.Next()); BlockingQueueTestCase.NotifyThread notifyThread = new BlockingQueueTestCase.NotifyThread (queue, data[1]); notifyThread.Start(); long start = Runtime.CurrentTimeMillis(); Assert.AreSame(data[1], queue.Next()); long end = Runtime.CurrentTimeMillis(); Assert.IsGreater(500, end - start); }