public static async Task <int> Main(string[] args) { var rootConfig = new ConfigurationBuilder() .SetBasePath(Path.Combine(AppContext.BaseDirectory)) .AddJsonFile("party.settings.json", optional: true, reloadOnChange: false) .Build(); var renderer = new ConsoleRenderer(Console.Out, Console.In, Console.Error, (ConsoleColor color) => Console.ForegroundColor = color, () => Console.ResetColor()); string vamFolder = FindVaMDirectory(); var config = PartyConfigurationFactory.Create(vamFolder); rootConfig.Bind(config); var controller = new PartyController(config); return(await new Program(renderer, config, controller).Execute(args).ConfigureAwait(false)); }
public void CreateDependencies() { _out = new StringBuilder(); _stringWriter = new StringWriter(_out); var outWriter = StandardStreamWriter.Create(_stringWriter); _renderer = new Mock <IConsoleRenderer>(MockBehavior.Strict); _renderer.Setup(x => x.WriteLine()).Callback(() => _out.Append($"\n")); _renderer.Setup(x => x.WriteLine(It.IsAny <string>())).Callback((string line) => _out.Append($"{line}\n")); _renderer.Setup(x => x.WriteLine(It.IsAny <string>(), It.IsAny <ConsoleColor>())).Callback((string line, ConsoleColor color) => _out.Append($"[color:{color}]{line}[/color]\n")); _renderer.Setup(x => x.Write(It.IsAny <string>())).Callback((string text) => _out.Append(text)); _renderer.Setup(x => x.Write(It.IsAny <string>(), It.IsAny <ConsoleColor>())).Callback((string text, ConsoleColor color) => _out.Append($"[color:{color}]{text}[/color]")); _renderer.Setup(x => x.WithColor(It.IsAny <ConsoleColor>())).Returns((ConsoleColor color) => new ColorStub(_out, color)); _renderer.Setup(x => x.Out).Returns(outWriter); _renderer.Setup(x => x.Error).Returns(outWriter); _controller = new Mock <IPartyController>(MockBehavior.Strict); _controller.SetupProperty(mock => mock.ChecksEnabled); var config = PartyConfigurationFactory.Create(@"C:\VaM"); _program = new Program(_renderer.Object, config, _controller.Object); }