예제 #1
0
        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();
        }
예제 #2
0
    /// <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);
    }