コード例 #1
0
        public void Build_WithStartup_StartupCreatedAndCalled()
        {
            var builder = new ConsoleAppBuilder(Array.Empty <string>());

            builder.UseProgramMain <TestProgramMain>();
            builder.UseStartup <TestStartup>();

            // Act
            var _ = builder.Build();

            // Assert
            TestStartup.ConfigureServicesIsCalled
            .Should()
            .BeTrue();
        }
コード例 #2
0
        ///-------------------------------------------------------------------------------------------------
        /// <summary>   Setups the ConsoleAppBuilder to use CLI actions for execution. </summary>
        ///
        /// <typeparam name="TCliStartup">  Type of the CLI startup. </typeparam>
        /// <param name="consoleAppBuilder">    The consoleAppBuilder to act on. </param>
        ///
        /// <returns>   A ConsoleAppBuilder. </returns>
        ///-------------------------------------------------------------------------------------------------
        public static ConsoleAppBuilder UseActions <TCliStartup>(this ConsoleAppBuilder consoleAppBuilder)
            where TCliStartup : class, ICliStartup, new()
        {
            return(consoleAppBuilder
                   .UseStartup <TCliStartup>()
                   .ConfigureServices(services => services.AddCliActions())
                   .UseExecutor(sp =>
            {
                var runtimeBuilder = sp.GetRequiredService <ICliActionRuntimeBuilder>();

                var startup = sp.GetRequiredService <IStartup>() as ICliStartup;

                startup?.Configure(runtimeBuilder);

                var runtime = runtimeBuilder.Build();

                return new CliActionsExecutor(runtime);
            }));
        }
コード例 #3
0
        ///-------------------------------------------------------------------------------------------------
        /// <summary>   Setups the ConsoleAppBuilder to use CLI actions for execution. </summary>
        ///
        /// <typeparam name="TStartup"> Type of the startup. </typeparam>
        /// <param name="consoleAppBuilder">    The consoleAppBuilder to act on. </param>
        /// <param name="setupRuntime">         Action for setting up the runtime. </param>
        ///
        /// <returns>   A ConsoleAppBuilder. </returns>
        ///-------------------------------------------------------------------------------------------------
        public static ConsoleAppBuilder UseSimpleActions <TStartup>(this ConsoleAppBuilder consoleAppBuilder,
                                                                    Action <ICliActionRuntimeBuilder> setupRuntime)
            where TStartup : class, IStartup, new()
        {
            Ensure.NotNull(setupRuntime, nameof(setupRuntime));

            return(consoleAppBuilder
                   .UseStartup <TStartup>()
                   .ConfigureServices(services => services.AddCliActions())
                   .UseExecutor(sp =>
            {
                var runtimeBuilder = sp.GetRequiredService <ICliActionRuntimeBuilder>();

                setupRuntime(runtimeBuilder);

                var runtime = runtimeBuilder.Build();

                return new CliActionsExecutor(runtime);
            }));
        }