Example #1
0
        private T GetOrCreateElement <T>(string id, IProject project, IUnitTestElement parent, ISet <UnitTestElementCategory> categories, Func <UnitTestElementId, T> factory)
            where T : Element
        {
            var elementId = _serviceProvider.CreateId(project, _targetFrameworkId, id);

            var element = GetElementById <T>(elementId) ?? factory(elementId);

            var invalidChildren = element.Children.Where(x => x.State == UnitTestElementState.Invalid);

            _serviceProvider.ElementManager.RemoveElements(invalidChildren.ToSet());

            element.Parent        = parent;
            element.OwnCategories = categories;

            _elements[elementId] = element;

            return(element);
        }