public async Task Test2() { var builder = new ConventionContextBuilder(new Dictionary <object, object?>()); var context = ConventionContext.From(builder .Set <IConfiguration>(new ConfigurationBuilder().Build()) .Set(new MediatRServiceConfiguration().AsSingleton()) .EnableConventionAttributes() .UseAssemblies(new TestAssemblyProvider().GetAssemblies()) ); var services = new ServiceCollection().ApplyConventions(context); var sub = A.Fake <IPipelineBehavior <Request, Unit> >(); services.AddSingleton(sub); services.Should().Contain( x => x.ServiceType == typeof(IMediator) && x.Lifetime == ServiceLifetime.Singleton ); var r = services.BuildServiceProvider(); var mediator = r.GetRequiredService <IMediator>(); await mediator.Send(new Request()).ConfigureAwait(false); A.CallTo(() => sub.Handle(A <Request> ._, A <CancellationToken> ._, A <RequestHandlerDelegate <Unit> > ._)) .MustHaveHappenedOnceExactly(); }
/// <summary> /// Uses AutoMapper. /// </summary> /// <param name="container">The container.</param> /// <param name="options">The options object</param> /// <returns>IConventionHostBuilder.</returns> public static ConventionContextBuilder UseAutoMapper(this ConventionContextBuilder container, AutoMapperOptions?options = null) { if (container == null) { throw new ArgumentNullException(nameof(container)); } container.Set(options ?? new AutoMapperOptions()); container.PrependConvention <AutoMapperConvention>(); return(container); }