public static void Main(string[] args) { if (args.Length == 0 || args[0] == "-h" || args[0] == "--help" || args[0] == "help" || args[0] == "/?") { ShowHelp(); return; } var levelSwitch = new LoggingLevelSwitch(); levelSwitch.MinimumLevel = Serilog.Events.LogEventLevel.Information; var logger = new LoggerConfiguration() .MinimumLevel.ControlledBy(levelSwitch) .WriteTo .LiterateConsole() .CreateLogger(); try { var options = new Options(); object invokedVerbInstance = null; var parser = new Parser(config => config.HelpWriter = null); // Parse the command line arguments bool parseSuccess = parser.ParseArguments(args, options, (verb, verbInstance) => { invokedVerbInstance = verbInstance; }); if (!parseSuccess) { ShowHelp(); return; } // Execute the ICommand that the CommandLineParser found var command = invokedVerbInstance as ICommand; if (command != null) { if (command.VerboseLogging) { levelSwitch.MinimumLevel = Serilog.Events.LogEventLevel.Debug; } var serviceLocator = new ServiceLocator(logger); serviceLocator.BuildContainer(); command.Logger = logger; command.Run(serviceLocator); System.Console.WriteLine(); } } catch (Exception e) { logger.Error($"Unhandled error: {e.Message}"); } }
public void should_register_remy_types() { // given var serviceLocator = new ServiceLocator(_logger); serviceLocator.BuildContainer(); // when IContainer container = serviceLocator.Container; // then Assert.That(container.GetInstance <IPowershellRunner>, Is.TypeOf <PowershellRunner>()); Assert.That(container.GetInstance <IFileProvider>, Is.TypeOf <FileProvider>()); Assert.That(container.GetInstance <IConfigFileReader>, Is.TypeOf <ConfigFileReader>()); Assert.That(container.GetInstance <ILogger>, Is.Not.Null); Assert.That(container.GetInstance <IYamlConfigParser>, Is.TypeOf <YamlConfigParser>()); }
public void should_add_tasks_from_plugins_directory() { // given + when var serviceLocator = new ServiceLocator(_logger); serviceLocator.BuildContainer(); IEnumerable <ITask> taskInstances = serviceLocator.Container.GetInstance <IEnumerable <ITask> >(); Dictionary <string, ITask> tasks = serviceLocator.TasksAsDictionary(taskInstances); // then Assert.That(tasks.Count, Is.EqualTo(6)); KeyValuePair <string, ITask> task = tasks.FirstOrDefault(x => x.Key == "mock-task"); Assert.That(task, Is.Not.Null); Assert.That(task.Key, Is.EqualTo(task.Value.YamlName)); Assert.That(task.Value, Is.Not.Null); Assert.That(task.Value.GetType().Name, Is.EqualTo(typeof(MockTask).Name)); }