예제 #1
0
        static void Main(string[] args)
        {
            var hostConfig = new J4JHostConfiguration()
                             .Publisher("J4JSoftware")
                             .ApplicationName("StaticPropertyExample")
                             .FilePathTrimmer(FilePathTrimmer);

            hostConfig.AddCommandLineProcessing(CommandLineOperatingSystems.Windows)
            .OptionsInitializer(SetupOptions);

            if (hostConfig.MissingRequirements != J4JHostRequirements.AllMet)
            {
                Console.WriteLine($"Missing J4JHostConfiguration items: {hostConfig.MissingRequirements}");
                Environment.ExitCode = 1;

                return;
            }

            var host = hostConfig.Build();

            if (host == null)
            {
                Console.WriteLine("Could not create IHost");
                Environment.ExitCode = 1;

                return;
            }

            var config = host.Services.GetRequiredService <IConfiguration>();

            if (config == null)
            {
                throw new NullReferenceException("Undefined IConfiguration");
            }

            var help = new ColorHelpDisplay(host.CommandLineLexicalElements !, host.Options !);

            help.Display();

            var parsed = config.Get <Program>();

            if (parsed == null)
            {
                Console.WriteLine("Parsing failed");

                Environment.ExitCode = -1;
                return;
            }

            Console.WriteLine("Parsing succeeded");

            Console.WriteLine($"IntValue is {IntValue}");
            Console.WriteLine($"TextValue is {TextValue}");
            Console.WriteLine($"SwitchValue is {SwitchValue}");

            Console.WriteLine(host.Options !.SpuriousValues.Count == 0
                                   ? "No unkeyed parameters"
                                   : $"Unkeyed parameters: {string.Join( ", ", host.Options.SpuriousValues )}");
        }
예제 #2
0
        public void SucceedConfigured()
        {
            var config = new J4JHostConfiguration()
                         .ApplicationName("Test")
                         .Publisher("J4JSoftware");

            config.MissingRequirements.Should().Be(J4JHostRequirements.AllMet);

            BuildHost(config);
        }
예제 #3
0
        public void FailNotConfigured()
        {
            var config = new J4JHostConfiguration();

            config.MissingRequirements.Should()
            .Be(J4JHostRequirements.ApplicationName | J4JHostRequirements.Publisher);

            var host = config.Build();

            host.Should().BeNull();
        }
예제 #4
0
        private IHost CreateHost()
        {
            var hostConfig = new J4JHostConfiguration()
                             .Publisher("J4JSoftware")
                             .ApplicationName("Tests.MiscellaneousUtilities")
                             .AddDependencyInjectionInitializers(SetupDependencyInjection);

            var retVal = hostConfig.Build();

            retVal.Should().NotBeNull();

            return(retVal !);
        }
예제 #5
0
        public void LoggerTest()
        {
            var config = new J4JHostConfiguration()
                         .ApplicationName("Test")
                         .Publisher("J4JSoftware")
                         .LoggerInitializer(config_logger);

            config.MissingRequirements.Should().Be(J4JHostRequirements.AllMet);

            var host = BuildHost(config);

            var logger = host.Services.GetRequiredService <IJ4JLogger>();

            logger.SetLoggedType(GetType());
            logger.Fatal("This is a test fatal event");
예제 #6
0
        private IHost CreateHost()
        {
            var hostConfig = new J4JHostConfiguration()
                             .Publisher("J4JSoftware")
                             .ApplicationName("Tests.GeoProcessor")
                             .AddApplicationConfigurationFile("appConfig.json")
                             .LoggerInitializer(LoggerInitializer)
                             .FilePathTrimmer(FilePathTrimmer)
                             .AddConfigurationInitializers(SetupConfigurationEnvironment)
                             .AddDependencyInjectionInitializers(SetupDependencyInjection);

            hostConfig.MissingRequirements.Should().Be(J4JHostRequirements.AllMet);

            var builder = hostConfig.CreateHostBuilder();

            builder.Should().NotBeNull();

            var retVal = builder !.Build();

            retVal.Should().NotBeNull();

            return(retVal !);
        }