public IUnitTestElement DeserializeElement(XmlElement xmlElement, [CanBeNull] IUnitTestElement parentElement) { var elementTypeFullName = xmlElement.GetAttribute(c_elementType); var absoluteId = xmlElement.GetAttribute(c_absoluteId); var projectId = xmlElement.GetAttribute(c_projectId); var text = xmlElement.GetAttribute(c_text); var categories = xmlElement.GetAttribute(c_categories).Split('|'); var identity = Identity.Parse(absoluteId); var project = ProjectUtil.FindProjectElementByPersistentID(_solution, projectId).GetProject(); var entity = new TestEntitySurrogate(identity, project, categories, text); return _testElementFactory.GetOrCreateTestElement(elementTypeFullName, entity, parentElement); }
public IUnitTestElement GetDynamicElement(RemoteTask remoteTask, Func<string, ITestElement> elementProvider) { var dynamicTask = (DynamicTask) remoteTask; var parentElement = elementProvider(dynamicTask.ParentGuid); Trace.Assert(parentElement != null, "parentElement != null"); var elementTypeFullName = typeof(ChildTestElement).FullName; var project = parentElement.GetProject().AssertNotNull(); var entity = new TestEntitySurrogate(dynamicTask.Identity, project, new string[0], dynamicTask.Text); var elementFactory = project.GetComponent<ITestElementFactory>(); var element = elementFactory.GetOrCreateTestElement(elementTypeFullName, entity, parentElement); // TODO: parameter for elementFactory instead? element.State = UnitTestElementState.Dynamic; return element; }