コード例 #1
0
        public void ClearStackClearsStack()
        {
            ManualResetEventSlim manualResetEventSlim = new ManualResetEventSlim();
            LIFOBackgroundWorker worker = new LIFOBackgroundWorker();

            worker.StackProcessed += (s, items) =>
            {
                Assert.AreEqual(2, items.Count);
                foreach (var item in items)
                {
                    Assert.AreEqual(true, item.IsProcessed);
                }
                manualResetEventSlim.Set();
            };

            worker.StartExecution();
            worker.Add(new StackItem()
            {
                ID = 1
            });
            worker.Add(new StackItem()
            {
                ID = 2
            });
            worker.Add(new StackItem()
            {
                ID = 3
            });
            worker.Add(new StackItem()
            {
                ID = 4
            });
            worker.Add(new StackItem()
            {
                ID = 5
            });
            worker.Add(new StackItem()
            {
                ID = 6
            });
            worker.ClearStack();
            worker.Add(new StackItem()
            {
                ID = 1
            });
            worker.Add(new StackItem()
            {
                ID = 2
            });
            worker.FinishExecution();

            if (!manualResetEventSlim.Wait(10000))
            {
                Assert.Fail(); // Event was not fired
            }
        }
コード例 #2
0
        public void AddItemToStackAddsItemToList()
        {
            LIFOBackgroundWorker worker = new LIFOBackgroundWorker();

            worker.StartExecution();
            worker.Add(new StackItem()
            {
                ID = 1
            });
            Assert.AreEqual(1, worker.StackItemCollection.Count);
            worker.FinishExecution();
        }
コード例 #3
0
        public void finishExecution_EventIsFired()
        {
            ManualResetEventSlim manualResetEventSlim = new ManualResetEventSlim();
            LIFOBackgroundWorker worker = new LIFOBackgroundWorker();

            worker.StackProcessed += (s, items) =>
            {
                manualResetEventSlim.Set();
            };

            worker.StartExecution();
            worker.FinishExecution();

            if (!manualResetEventSlim.Wait(10000))
            {
                Assert.Fail(); // Event was not fired
            }
        }
コード例 #4
0
        public void abortExecution_aborts()
        {
            ManualResetEventSlim manualResetEventSlim = new ManualResetEventSlim();
            LIFOBackgroundWorker worker = new LIFOBackgroundWorker();

            worker.StackProcessed += (s, items) =>
            {
                manualResetEventSlim.Set();
            };

            worker.StartExecution();
            worker.AbortExecution();

            if (manualResetEventSlim.Wait(2000))
            {
                Assert.Fail(); // Event was fired, it shouldnt be on abort
            }
        }
コード例 #5
0
        public void AddItemToStackThenStartProcess_isProcessed()
        {
            ManualResetEventSlim manualResetEventSlim = new ManualResetEventSlim();
            LIFOBackgroundWorker worker = new LIFOBackgroundWorker();

            worker.ItemProcessed += (s, item) =>
            {
                Assert.AreEqual(1, (item as StackItem).ID);
                manualResetEventSlim.Set();
            };

            worker.Add(new StackItem()
            {
                ID = 1
            });
            worker.StartExecution();
            if (!manualResetEventSlim.Wait(10000))
            {
                Assert.Fail();
            }
            worker.FinishExecution();
        }
コード例 #6
0
        public void StartExecution()
        {
            LIFOBackgroundWorker worker = new LIFOBackgroundWorker();

            worker.StartExecution();
        }