public void OneStartupNotThrowsException()
 {
     MariCommandsHostBuilderExtensions.Clear();
     Host.CreateDefaultBuilder()
     .UseCommandStartup <TestCommandStartup>()
     .Build();
 }
        public async Task WillCallCommandServiceStartupMethodsWhenInjectInHost()
        {
            var props = new Dictionary <string, object>();

            MariCommandsHostBuilderExtensions.Clear();

            var host = Host.CreateDefaultBuilder()
                       .ConfigureServices(services =>
            {
                services.AddTransient <ICommandApplicationBuilderFactory>((sp) =>
                {
                    return(new TestCommandApplicationBuilderFactory(props));
                });
            })
                       .UseCommandServiceStartup <TestCommandStartupAssert>()
                       .Build();

            await host.StartAsync();

            var configurer = host.Services.GetRequiredService <IModuleConfigurer>();
            var dependency = host.Services.GetRequiredService <SomeDependencyTest>();

            Assert.NotNull(configurer);
            Assert.NotNull(dependency);

            var logValue  = props[TestCommandStartupAssert.LogKey];
            var separator = configurer.Options.Separator;

            Assert.Equal(TestCommandStartupAssert.LogValue, logValue);
            Assert.Equal(TestCommandStartupAssert.Separator, separator);
        }
        public void TwoStartupsThrowsException()
        {
            TestDelegate test = obj => Task.CompletedTask;

            var contextParameter = Expression.Parameter(typeof(object));
            var instanceCast     = Expression.Convert(contextParameter, test.Method.GetParameters().First().ParameterType);
            var callExpression   = Expression.Call(Expression.Constant(test.Target), test.Method, instanceCast);

            var lambda          = Expression.Lambda <Func <object, Task> >(callExpression, contextParameter);
            var buildedDelegate = lambda.Compile();

            buildedDelegate("AISDHJDUASH").GetAwaiter().GetResult();

            MariCommandsHostBuilderExtensions.Clear();

            var builder = Host.CreateDefaultBuilder();

            Assert.ThrowsAny <InvalidOperationException>(() =>
            {
                builder
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseTestServer()
                    .Configure(app => { })
                    .ConfigureServices(services => { });

                    webBuilder.UseCommandStartup <TestCommandStartup>();
                    webBuilder.UseCommandStartup <TestCommandStartup>();
                })
                .Build();
            });
        }
Example #4
0
        public async Task WillStartAppInWebHosts()
        {
            var host = Host.CreateDefaultBuilder()
                       .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseTestServer()
                .ConfigureServices(services => { })
                .Configure(app => { });

                MariCommandsHostBuilderExtensions.Clear();
                webBuilder.UseCommandServiceStartup <TestCommandStartup>();
                webBuilder.UseStartup <TestCommandStartup>();
            })
                       .Build();

            await host.StartAsync();

            var executor = host.Services.GetRequiredService <IContextExecutor>();

            var context = new CommandContext()
            {
                Result  = new Mock <IResult>().Object,
                Command = new Mock <ICommand>().Object,
            };

            await executor.ExecuteAsync(string.Empty, context);
        }
        public async Task CanExecuteAnyWorkerCommandAfterAddCommandServiceStartup()
        {
            MariCommandsHostBuilderExtensions.Clear();

            var host = Host.CreateDefaultBuilder()
                       .UseCommandServiceStartup <TestCommandStartup>()
                       .ConfigureServices(services =>
            {
                services.AddHostedService <TestWorkerService>();
            })
                       .Build();

            await host.StartAsync();
        }
        public async Task CanExecuteAnyCommandAfterAddCommandServiceStartup()
        {
            MariCommandsHostBuilderExtensions.Clear();

            var host = Host.CreateDefaultBuilder()
                       .UseCommandServiceStartup <TestCommandStartup>()
                       .Build();

            await host.StartAsync();

            var contextExecutor = host.Services.GetRequiredService <IContextExecutor>();

            await contextExecutor.ExecuteAsync(string.Empty, new CommandContext());
        }
        public void OneCommandServiceStartupNotThrowsException()
        {
            Host.CreateDefaultBuilder()
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseTestServer()
                .ConfigureServices(services => { })
                .Configure(app => { });

                MariCommandsHostBuilderExtensions.Clear();
                webBuilder.UseCommandServiceStartup <TestCommandStartup>();
            })
            .Build();
        }
        public async Task CanExecuteAnyCommandAfterAddCommandServiceStartup()
        {
            var host = Host.CreateDefaultBuilder()
                       .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseTestServer()
                .ConfigureServices(services => { })
                .Configure(app => { });

                MariCommandsHostBuilderExtensions.Clear();
                webBuilder.UseCommandServiceStartup <TestCommandStartup>();
            })
                       .Build();

            await host.StartAsync();

            var contextExecutor = host.Services.GetRequiredService <IContextExecutor>();

            await contextExecutor.ExecuteAsync(string.Empty, new CommandContext());
        }
 public HostBuilderTests()
 {
     MariCommandsHostBuilderExtensions.Clear();
 }
Example #10
0
 public CommandStartupFilterTests()
 {
     MariCommandsHostBuilderExtensions.Clear();
 }