public void FindsAssembliesInCandidates_Params() { var resolver = new AppDomainAssemblyCandidateFinder(AppDomain.CurrentDomain, Logger); var items = resolver.GetCandidateAssemblies( new[] { "Rocket.Surgery.Conventions", "Rocket.Surgery.Conventions.Abstractions" } ) .Select(x => x.GetName().Name) .ToArray(); foreach (var item in items) { Logger.LogInformation(item); } items .Should() .Contain( new[] { "Sample.DependencyOne", //"Sample.DependencyTwo", "Sample.DependencyThree", "Rocket.Surgery.Conventions.Tests" } ); items .Last() .Should() .Be("Rocket.Surgery.Conventions.Tests"); }
internal static RocketWasmHostBuilder GetOrCreateBuilder(IWebAssemblyHostBuilder builder, Assembly assembly = null) { if (!Builders.TryGetValue(builder, out var conventionalBuilder)) { var diagnosticSource = new DiagnosticListener("Rocket.Surgery.Blazor"); var logger = new DiagnosticLogger(diagnosticSource); var serviceProviderDictionary = new ServiceProviderDictionary(builder.Properties); serviceProviderDictionary.Set <ILogger>(logger); serviceProviderDictionary.Set(HostType.Live); var assemblyCandidateFinder = new AppDomainAssemblyCandidateFinder(AppDomain.CurrentDomain, logger); var assemblyProvider = new DefaultAssemblyProvider(AppDomain.CurrentDomain.GetAssemblies().Concat(GetAllAssemblies(assembly !)).ToArray());
public void FindsAssembliesInCandidates_Empty() { var resolver = new AppDomainAssemblyCandidateFinder(AppDomain.CurrentDomain, Logger); var items = resolver.GetCandidateAssemblies(Array.Empty <string>().AsEnumerable()) .Select(x => x.GetName().Name) .ToArray(); foreach (var item in items) { Logger.LogInformation(item); } items.Should().BeEmpty(); }
/// <summary> /// Fors the application domain. /// </summary> /// <param name="appDomain">The application domain.</param> /// <param name="diagnosticSource">The diagnostic source.</param> /// <returns>Func<IHostBuilder, IRocketHostBuilder>.</returns> public static Func <IHostBuilder, IRocketHostBuilder> ForAppDomain( AppDomain appDomain, DiagnosticSource diagnosticSource = null) { return(builder => { var b = RocketHostExtensions.GetOrCreateBuilder(builder); if (diagnosticSource != null) { b = b.With(diagnosticSource); } var logger = new DiagnosticLogger(b.DiagnosticSource); var assemblyCandidateFinder = new AppDomainAssemblyCandidateFinder(appDomain, logger); var assemblyProvider = new AppDomainAssemblyProvider(appDomain, logger); var scanner = new SimpleConventionScanner(assemblyCandidateFinder, b.ServiceProperties, logger); return RocketHostExtensions.Swap(b, b .With(assemblyCandidateFinder) .With(assemblyProvider) .With(scanner) ); }); }