Beispiel #1
0
        static IEnumerable <Type> GetTypesScopedByTestClass(ITransportIntegration transportToUse, EndpointConfiguration endpointConfiguration)
        {
            var assemblies = new AssemblyScanner().GetScannableAssemblies();

            var types = assemblies.Assemblies
                        //exclude all test types by default
                        .Where(a => a != Assembly.GetExecutingAssembly())
                        .Where(a =>
            {
                if (a == transportToUse.Type.Assembly)
                {
                    return(true);
                }
                return(!a.GetName().Name.Contains("Transports"));
            })
                        .Where(a => !a.GetName().Name.StartsWith("ServiceControl.Plugin"))
                        .Where(a => a.GetName().Name != "ServiceControl")
                        .SelectMany(a => a.GetTypes());

            types = types.Union(GetNestedTypeRecursive(transportToUse.GetType(), null));

            var extraConfigForEndpoint = Type.GetType($"{transportToUse.GetType().Namespace}.{transportToUse.Name}.CustomConfigForEndpoints", false);

            if (extraConfigForEndpoint != null)
            {
                types = types.Union(new [] { extraConfigForEndpoint });
            }

            types = types.Union(GetNestedTypeRecursive(endpointConfiguration.BuilderType.DeclaringType, endpointConfiguration.BuilderType));

            types = types.Union(endpointConfiguration.TypesToInclude);

            var typesScopedByTestClass = types.ToList();

            return(typesScopedByTestClass);
        }
Beispiel #2
0
        private static IEnumerable <Type> GetTypesScopedByTestClass(ITransportIntegration transportToUse)
        {
            var assemblies = new AssemblyScanner().GetScannableAssemblies();

            var types = assemblies.Assemblies
                        //exclude all test types by default
                        .Where(a => a != Assembly.GetExecutingAssembly())
                        .Where(a =>
            {
                if (a == transportToUse.Type.Assembly)
                {
                    return(true);
                }
                return(!a.GetName().Name.Contains("Transports"));
            })
                        .Where(a => !a.GetName().Name.StartsWith("ServiceControl.Plugin"))
                        .SelectMany(a => a.GetTypes());

            types = types.Union(GetNestedTypeRecursive(transportToUse.GetType()));

            return(types);
        }