/// <summary>
        /// Searches recursively in the test containers until a
        /// real ModuleActivity is found that includes error messages.
        /// </summary>
        /// <param name="container"></param>
        /// <returns></returns>
        private string RecSearchContainer(ITestContainerActivity container)
        {
            string error = "";

            foreach (var containerChild in container.Children)
            {
                var subContainer = containerChild as ITestContainerActivity;
                if (subContainer != null)
                {
                    error = this.RecSearchContainer(subContainer);
                }

                var module = containerChild as ITestModuleActivity;
                if (module != null)
                {
                    error = this.GetFirstModuleError(module.Children);
                }

                // if we have found a result, then return it
                if (!string.IsNullOrEmpty(error))
                {
                    break;
                }
            }

            return(error);
        }
        /// <summary>
        /// Recursively collects all error messages from given test container
        /// </summary>
        /// <param name="container"></param>
        private static void GetErrorMessages(ITestContainerActivity container)
        {
            foreach (var containerChild in container.Children)
            {
                // Check if TestContainerActivity
                var testContainerActivity = containerChild as ITestContainerActivity;
                if (testContainerActivity != null)
                {
                    GetErrorMessages(testContainerActivity);
                }

                // Check if TestModuleActivity
                var testModuleActivity = containerChild as ITestModuleActivity;
                if (testModuleActivity != null)
                {
                    AddErrorMessages(
                        testModuleActivity.TestModuleName,
                        container.FullDisplayName,
                        testModuleActivity.Children);
                }
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="rootContainer"></param>
 public TestResultReader(ITestContainerActivity rootContainer)
 {
     this.rootContainer = rootContainer;
 }