Example #1
0
        private IList <PatternTestFrameworkExtensionInfo> GetExtensions(IAssemblyInfo assembly)
        {
            var testFrameworkManager = RuntimeAccessor.ServiceLocator.Resolve <ITestFrameworkManager>();

            var extensions = new List <PatternTestFrameworkExtensionInfo>();
            IList <AssemblyName> assemblyReferences = assembly.GetReferencedAssemblies();

            foreach (var testFrameworkHandle in testFrameworkManager.TestFrameworkHandles)
            {
                if (Array.IndexOf(testFrameworkIds, testFrameworkHandle.Id) < 0)
                {
                    continue;
                }

                if (testFrameworkHandle.GetTraits().IsFrameworkCompatibleWithAssemblyReferences(assemblyReferences))
                {
                    try
                    {
                        var testFramework = (PatternTestFramework)testFrameworkHandle.GetComponent();
                        extensions.AddRange(testFramework.GetExtensions(assembly));
                    }
                    catch (Exception ex)
                    {
                        UnhandledExceptionPolicy.Report(
                            "A pattern test framework extension threw an exception while enumerating referenced extensions for an assembly.",
                            ex);
                    }
                }
            }

            extensions.Sort((a, b) => a.Id.CompareTo(b.Id));

            return(extensions);
        }
        /// <summary>
        /// Finds the assembly name of the directly referenced assembly with the specified display name.
        /// </summary>
        /// <param name="assembly">The assembly to search.</param>
        /// <param name="displayName">The display name of the referenced assembly to find.</param>
        /// <returns>The referenced assembly name or null if none.</returns>
        public static AssemblyName FindAssemblyReference(IAssemblyInfo assembly, string displayName)
        {
            foreach (AssemblyName reference in assembly.GetReferencedAssemblies())
            {
                if (reference.Name == displayName)
                    return reference;
            }

            return null;
        }
Example #3
0
        /// <summary>
        /// Finds the assembly name of the directly referenced assembly with the specified display name.
        /// </summary>
        /// <param name="assembly">The assembly to search.</param>
        /// <param name="displayName">The display name of the referenced assembly to find.</param>
        /// <returns>The referenced assembly name or null if none.</returns>
        public static AssemblyName FindAssemblyReference(IAssemblyInfo assembly, string displayName)
        {
            foreach (AssemblyName reference in assembly.GetReferencedAssemblies())
            {
                if (reference.Name == displayName)
                {
                    return(reference);
                }
            }

            return(null);
        }
        SelectTestFrameworksForCodeElementsImpl(
            IEnumerable <ComponentHandle <ITestFramework, TestFrameworkTraits> > filteredTestFrameworkHandlesWithoutFallback,
            TestFrameworkFallbackMode testFrameworkFallbackMode,
            TestFrameworkOptions testFrameworkOptions,
            IEnumerable <ICodeElementInfo> codeElements)
        {
            var selections = new Dictionary <object, TestFrameworkSelection>();
            var partitions = new MultiMap <TestFrameworkSelection, ICodeElementInfo>();

            foreach (var codeElement in codeElements)
            {
                IAssemblyInfo assembly = ReflectionUtils.GetAssembly(codeElement);
                if (assembly != null)
                {
                    IList <AssemblyName> assemblyReferences = assembly.GetReferencedAssemblies();

                    bool supported = false;
                    foreach (var testFrameworkHandle in filteredTestFrameworkHandlesWithoutFallback)
                    {
                        if (testFrameworkHandle.GetTraits().IsFrameworkCompatibleWithAssemblyReferences(assemblyReferences))
                        {
                            TestFrameworkSelection selection = GetOrCreateSelectionIfAbsent(
                                selections, testFrameworkHandle,
                                () => new TestFrameworkSelection(testFrameworkHandle, testFrameworkOptions, false));

                            partitions.Add(selection, codeElement);
                            supported = true;
                        }
                    }

                    if (!supported)
                    {
                        TestFrameworkSelection selection = GetFallbackSelection(selections, assemblyReferences,
                                                                                filteredTestFrameworkHandlesWithoutFallback, testFrameworkOptions, testFrameworkFallbackMode);
                        if (selection != null)
                        {
                            partitions.Add(selection, codeElement);
                        }
                    }
                }
            }

            return(partitions);
        }
        private IList<PatternTestFrameworkExtensionInfo> GetExtensions(IAssemblyInfo assembly)
        {
            var testFrameworkManager = RuntimeAccessor.ServiceLocator.Resolve<ITestFrameworkManager>();

            var extensions = new List<PatternTestFrameworkExtensionInfo>();
            IList<AssemblyName> assemblyReferences = assembly.GetReferencedAssemblies();

            foreach (var testFrameworkHandle in testFrameworkManager.TestFrameworkHandles)
            {
                if (Array.IndexOf(testFrameworkIds, testFrameworkHandle.Id) < 0)
                    continue;

                if (testFrameworkHandle.GetTraits().IsFrameworkCompatibleWithAssemblyReferences(assemblyReferences))
                {
                    try
                    {
                        var testFramework = (PatternTestFramework) testFrameworkHandle.GetComponent();
                        extensions.AddRange(testFramework.GetExtensions(assembly));
                    }
                    catch (Exception ex)
                    {
                        UnhandledExceptionPolicy.Report(
                            "A pattern test framework extension threw an exception while enumerating referenced extensions for an assembly.",
                            ex);
                    }
                }
            }

            extensions.Sort((a, b) => a.Id.CompareTo(b.Id));

            return extensions;
        }
Example #6
0
 public override AssemblyName[] GetReferencedAssemblies()
 {
     return(adapter.GetReferencedAssemblies().ToArray());
 }