public static IUnitTestElement ReadFromXml(XmlElement parent, IUnitTestElement parentElement, MSpecUnitTestProvider provider, ISolution solution
#if RESHARPER_61
                                                   , IUnitTestElementManager manager, PsiModuleManager psiModuleManager, CacheManager cacheManager
#endif
                                                   )
        {
            var projectId = parent.GetAttribute("projectId");
            var project   = ProjectUtil.FindProjectElementByPersistentID(solution, projectId) as IProject;

            if (project == null)
            {
                return(null);
            }

            var typeName         = parent.GetAttribute("typeName");
            var assemblyLocation = parent.GetAttribute("assemblyLocation");
            var isIgnored        = bool.Parse(parent.GetAttribute("isIgnored"));
            var subject          = parent.GetAttribute("subject");

            return(ContextFactory.GetOrCreateContextElement(provider,
#if RESHARPER_61
                                                            manager, psiModuleManager, cacheManager,
#endif
                                                            project,
                                                            ProjectModelElementEnvoy.Create(project),
                                                            typeName,
                                                            assemblyLocation,
                                                            subject,
                                                            EmptyArray <string> .Instance,
                                                            isIgnored));
        }
        internal static IUnitTestElement ReadFromXml(XmlElement parent, IUnitTestElement parentElement, ISolution solution, UnitTestElementFactory unitTestElementFactory)
        {
            var testClass = parentElement as XunitTestClassElement;

            if (testClass == null)
            {
                throw new InvalidOperationException("parentElement should be xUnit.net test class");
            }

            var typeName   = parent.GetAttribute("typeName");
            var methodName = parent.GetAttribute("methodName");
            var projectId  = parent.GetAttribute("projectId");
            var skipReason = parent.GetAttribute("skipReason");
            var isDynamic  = parent.GetAttribute("dynamic", false);

            var project = (IProject)ProjectUtil.FindProjectElementByPersistentID(solution, projectId);

            if (project == null)
            {
                return(null);
            }

            // TODO: Save and load traits. Not sure it's really necessary, they get updated when the file is scanned
            return(unitTestElementFactory.GetOrCreateTestMethod(project, testClass,
                                                                new ClrTypeName(typeName), methodName, skipReason, new MultiValueDictionary <string, string>(), isDynamic));
        }
Ejemplo n.º 3
0
        protected static ElementProperties ReadFromXml(XmlElement parent, ISolution solution, string nameAttribute)
        {
            int rangeStart;
            int rangeEnd;
            var fileName  = parent.GetAttribute(FileNameAttribute);
            var name      = parent.GetAttribute(nameAttribute);
            var id        = parent.GetAttribute(ProjectAttribute);
            var textRange = (!int.TryParse(parent.GetAttribute(TextRangeStartAttribute), out rangeStart) ||
                             !int.TryParse(parent.GetAttribute(TextRangeEndAttribute), out rangeEnd))
                                ? TextRange.InvalidRange
                                : new TextRange(rangeStart, rangeEnd);
            var projectFolder = (IProject)ProjectUtil.FindProjectElementByPersistentID(solution, id);

            var referencedFiles = (from element in parent.ChildNodes.OfType <XmlElement>()
                                   where Equals(element.Name, ReferencedFileTag)
                                   select element.GetAttribute(ReferencedFilePathAttribute)).ToList();

            var file = projectFolder.GetAllProjectFiles(f => Equals(f.Location.FullPath, fileName)).FirstOrDefault();

            if (file == null)
            {
                return(null);
            }

            return(new ElementProperties
            {
                Name = name,
                FileName = fileName,
                ProjectFolder = projectFolder,
                ProjectFileEnvoy = ProjectModelElementEnvoy.Create(file),
                TextRange = textRange,
                ReferencedFiles = referencedFiles
            });
        }
Ejemplo n.º 4
0
        public static IUnitTestElement ReadFromXml(XmlElement parent,
                                                   IUnitTestElement parentElement,
                                                   ISolution solution,
                                                   BehaviorSpecificationFactory factory)
        {
            var projectId = parent.GetAttribute("projectId");
            var project   = ProjectUtil.FindProjectElementByPersistentID(solution, projectId) as IProject;

            if (project == null)
            {
                return(null);
            }

            var behavior = parentElement as BehaviorElement;

            if (behavior == null)
            {
                return(null);
            }

            var typeName   = parent.GetAttribute("typeName");
            var methodName = parent.GetAttribute("methodName");
            var isIgnored  = bool.Parse(parent.GetAttribute("isIgnored"));

            return(factory.GetOrCreateBehaviorSpecification(behavior,
                                                            new ClrTypeName(typeName),
                                                            methodName,
                                                            isIgnored));
        }
        public static IUnitTestElement ReadFromXml(XmlElement parent, IUnitTestElement parentElement, MSpecUnitTestProvider provider, ISolution solution
#if RESHARPER_61
                                                   , IUnitTestElementManager manager, PsiModuleManager psiModuleManager, CacheManager cacheManager
#endif
                                                   )
        {
            var projectId = parent.GetAttribute("projectId");
            var project   = ProjectUtil.FindProjectElementByPersistentID(solution, projectId) as IProject;

            if (project == null)
            {
                return(null);
            }

            var behavior = parentElement as BehaviorElement;

            if (behavior == null)
            {
                return(null);
            }

            var typeName   = parent.GetAttribute("typeName");
            var methodName = parent.GetAttribute("methodName");
            var isIgnored  = bool.Parse(parent.GetAttribute("isIgnored"));

            return(BehaviorSpecificationFactory.GetOrCreateBehaviorSpecification(provider,
#if RESHARPER_61
                                                                                 manager, psiModuleManager, cacheManager,
#endif
                                                                                 project, behavior, ProjectModelElementEnvoy.Create(project), typeName, methodName, isIgnored));
        }
Ejemplo n.º 6
0
        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 identity = Identity.Parse(absoluteId);
            var project  = ProjectUtil.FindProjectElementByPersistentID(_solution, projectId).GetProject();
            var entity   = new TestEntitySurrogate(identity, project, text);

            return(_testElementFactory.GetOrCreateTestElement(elementTypeFullName, entity, parentElement));
        }
Ejemplo n.º 7
0
        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(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);

            var identity = Identity.Parse(absoluteId);
            var project  = ProjectUtil.FindProjectElementByPersistentID(_solution, projectId).GetProject().NotNull();
            var entity   = new TestEntitySurrogate(identity, project, categories, text);

            return(_testElementFactory.GetOrCreateTestElement(elementTypeFullName, entity, parentElement));
        }
Ejemplo n.º 8
0
        internal static IUnitTestElement ReadFromXml(XmlElement parent, IUnitTestElement parentElement, ISolution solution, UnitTestElementFactory unitTestElementFactory)
        {
            var projectId = parent.GetAttribute(AttributeNames.ProjectId);
            var typeName  = parent.GetAttribute(AttributeNames.TypeName);

            var project = (IProject)ProjectUtil.FindProjectElementByPersistentID(solution, projectId);

            if (project == null)
            {
                return(null);
            }
            var assemblyLocation = project.GetOutputFilePath().FullPath;

            return(unitTestElementFactory.GetOrCreateTestClass(project, new ClrTypeName(typeName), assemblyLocation));
        }
Ejemplo n.º 9
0
        internal static IUnitTestElement ReadFromXml(XmlElement parent, IUnitTestElement parentElement, ISolution solution, UnitTestElementFactory unitTestElementFactory)
        {
            var projectId = parent.GetAttribute("projectId");
            var typeName  = parent.GetAttribute("typeName");

            var project = (IProject)ProjectUtil.FindProjectElementByPersistentID(solution, projectId);

            if (project == null)
            {
                return(null);
            }
            var assemblyLocation = project.GetOutputFilePath().FullPath;

            // TODO: Save and load traits. Might not be necessary - they are reset when scanning the file
            return(unitTestElementFactory.GetOrCreateTestClass(project, new ClrTypeName(typeName), assemblyLocation, new MultiValueDictionary <string, string>()));
        }
        public static IUnitTestElement ReadFromXml(XmlElement parent,
                                                   IUnitTestElement parentElement,
                                                   MSpecUnitTestProvider provider,
                                                   ISolution solution,
                                                   IUnitTestElementManager manager,
                                                   PsiModuleManager psiModuleManager,
                                                   CacheManager cacheManager
                                                   )
        {
            var projectId = parent.GetAttribute("projectId");
            var project   = ProjectUtil.FindProjectElementByPersistentID(solution, projectId) as IProject;

            if (project == null)
            {
                return(null);
            }

            var context = parentElement as ContextElement;

            if (context == null)
            {
                return(null);
            }

            var typeName   = parent.GetAttribute("typeName");
            var methodName = parent.GetAttribute("methodName");
            var isIgnored  = bool.Parse(parent.GetAttribute("isIgnored"));
            var fieldType  = parent.GetAttribute("fieldType");

            return(BehaviorFactory.GetOrCreateBehavior(provider,
                                                       manager,
                                                       psiModuleManager,
                                                       cacheManager,
                                                       project,
                                                       ProjectModelElementEnvoy.Create(project),
                                                       context,
                                                       new ClrTypeName(typeName),
                                                       methodName,
                                                       isIgnored,
                                                       fieldType));
        }
        public static IUnitTestElement ReadFromXml(XmlElement parent,
                                                   ISolution solution,
                                                   ContextFactory factory)
        {
            var projectId = parent.GetAttribute("projectId");
            var project   = ProjectUtil.FindProjectElementByPersistentID(solution, projectId) as IProject;

            if (project == null)
            {
                return(null);
            }

            var typeName         = parent.GetAttribute("typeName");
            var assemblyLocation = parent.GetAttribute("assemblyLocation");
            var isIgnored        = bool.Parse(parent.GetAttribute("isIgnored"));
            var subject          = parent.GetAttribute("subject");

            return(factory.GetOrCreateContext(assemblyLocation,
                                              project,
                                              new ClrTypeName(typeName),
                                              subject,
                                              EmptyArray <string> .Instance,
                                              isIgnored));
        }
        internal static IUnitTestElement ReadFromXml(XmlElement parent, IUnitTestElement parentElement, ISolution solution, UnitTestElementFactory unitTestElementFactory)
        {
            var testClass = parentElement as TestClassElement;

            if (testClass == null)
            {
                throw new InvalidOperationException("parentElement should be Fixie test class");
            }

            var typeName        = parent.GetAttribute(AttributeNames.TypeName);
            var methodName      = parent.GetAttribute(AttributeNames.MethodName);
            var projectId       = parent.GetAttribute(AttributeNames.ProjectId);
            var isParameterized = bool.Parse(parent.GetAttribute(AttributeNames.IsParameterized));

            var project = (IProject)ProjectUtil.FindProjectElementByPersistentID(solution, projectId);

            if (project == null)
            {
                return(null);
            }

            return(unitTestElementFactory.GetOrCreateTestMethod(project, testClass,
                                                                typeName, methodName, isParameterized));
        }