private void ProcessQueue(TestEventsCollector collector)
        {
            if (!collector.DelayedEvents.Any())
            {
                return;
            }

            foreach (var myEvent in collector.DelayedEvents)
            {
                switch (myEvent.myType)
                {
                case EventType.RunFinished:
                    RunFinished(myUnitTestLaunch);
                    break;

                case EventType.TestFinished:
                    TestFinished(myUnitTestLaunch, GetTestResult(myEvent.Event));
                    break;

                case EventType.TestStarted:
                    var tResult = new TestResult(myEvent.Event.myID, string.Empty, 0, Status.Running, myEvent.Event.myParentID);
                    TestStarted(myUnitTestLaunch, tResult);
                    break;
                }
            }

            collector.Clear();
        }
        internal TestEventsSender(TestEventsCollector collector, UnitTestLaunch unitTestLaunch)
        {
            myUnitTestLaunch = unitTestLaunch;
            ProcessQueue(collector);
            collector.Clear();

            collector.ClearEvent();
            collector.AddEvent += (col, _) =>
            {
                ProcessQueue((TestEventsCollector)col);
            };
        }