/// <summary> /// Metoda specialne pro WPF aplikace, ktere nepotrebuji zadny runner, ale hodi se logovani, metriky a konfigurace /// </summary> /// <returns></returns> public ServiceCollection Build() { var services = new ServiceCollection(); // configuration var config = DefaultConfiguration.Create(configPaths.ToArray(), args); DefaultConfiguration.Configure(services, config); // app context var name = config.GetValue <string>("app:name", null); var env = config.GetValue <string>("app:env", null); var appInfo = new AppInfo(args, name, env); services.AddSingleton(appInfo); // logging var logsOptions = LogsOptions.Create(config, appInfo.Name); var(loggerFactory, defaultLogger) = DefaultLogging.Create(logsOptions, appInfo); DefaultLogging.ConfigureServices(services, loggerFactory, defaultLogger); // metrics var metricsOptions = Conventions.MetricsOptions.Create(config); IMetricsRoot metrics = DefaultMetrics.Create(metricsOptions, appInfo); DefaultMetrics.ConfigureServices(services, metrics, metricsOptions); // log few details about so far configured services for debugging purposes defaultLogger.Debug("StartUp: application {appInfo}", appInfo); defaultLogger.Debug("StartUp: logging {options}", logsOptions); defaultLogger.Debug("StartUp: metrics {options}", metricsOptions); return(services); }
public void Configure_Writes_Debug_Messages() { var logger = new TestLogger(); DefaultConfiguration.Configure(new RequestFactory(logger)); logger.DebugMessages.Should().ContainInOrder( new[] { "Registered SonarQube.Client.Api.V2_10.GetPluginsRequest for 2.1", "Registered SonarQube.Client.Api.V2_10.GetProjectsRequest for 2.1", "Registered SonarQube.Client.Api.V2_10.GetVersionRequest for 2.1", "Registered SonarQube.Client.Api.V2_60.GetPropertiesRequest for 2.6", "Registered SonarQube.Client.Api.V3_30.ValidateCredentialsRequest for 3.3", "Registered SonarQube.Client.Api.V5_10.GetIssuesRequest for 5.1", "Registered SonarQube.Client.Api.V5_20.GetQualityProfileChangeLogRequest for 5.2", "Registered SonarQube.Client.Api.V5_20.GetQualityProfilesRequest for 5.2", "Registered SonarQube.Client.Api.V5_20.GetRoslynExportProfileRequest for 5.2", "Registered SonarQube.Client.Api.V5_40.GetModulesRequest for 5.4", "Registered SonarQube.Client.Api.V6_20.GetOrganizationsRequest for 6.2", "Registered SonarQube.Client.Api.V6_20.GetProjectsRequest for 6.2", "Registered SonarQube.Client.Api.V6_30.GetPluginsRequest for 6.3", "Registered SonarQube.Client.Api.V6_30.GetPropertiesRequest for 6.3", "Registered SonarQube.Client.Api.V6_50.GetQualityProfileChangeLogRequest for 6.5", "Registered SonarQube.Client.Api.V6_50.GetQualityProfilesRequest for 6.5", "Registered SonarQube.Client.Api.V6_60.GetNotificationsRequest for 6.6", "Registered SonarQube.Client.Api.V6_60.GetRoslynExportProfileRequest for 6.6", "Registered SonarQube.Client.Api.V7_00.GetOrganizationsRequest for 7.0", "Registered SonarQube.Client.Api.V7_20.GetIssuesRequestWrapper for 7.2", }); }
public void TestInitialize() { messageHandler = new Mock <HttpMessageHandler>(MockBehavior.Strict); requestFactory = new RequestFactory(); DefaultConfiguration.Configure(requestFactory); service = new SonarQubeService(messageHandler.Object, requestFactory, UserAgent); }
public void Configure() { // prepare var mock = new MockBuilderExtension(); var configuration = new DefaultConfiguration <MockBuilderExtension>(Verify); // act configuration.Configure(mock); // verify void Verify(MockBuilderExtension mbe) => Assert.Same(mock, mbe); }
public void TestInitialize() { // Ensure exception messages are not platform dependent to not break assertions on non english platforms Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture; logger = new TestLogger(); messageHandler = new Mock <HttpMessageHandler>(MockBehavior.Strict); requestFactory = new RequestFactory(logger); DefaultConfiguration.Configure(requestFactory); ResetService(); }
private (IServiceProvider, AppInfo, ILogger) BuildImpl() { var services = new ServiceCollection(); // configuration var config = DefaultConfiguration.Create(configPaths.ToArray(), args); DefaultConfiguration.Configure(services, config); // app context var name = config.GetValue <string>("app:name", null); var env = config.GetValue <string>("app:env", null); var appInfo = new AppInfo(args, name, env); services.AddSingleton(appInfo); // logging var logsOptions = LogsOptions.Create(config, appInfo.Name); var(loggerFactory, defaultLogger) = DefaultLogging.Create(logsOptions, appInfo); DefaultLogging.ConfigureServices(services, loggerFactory, defaultLogger); // metrics var metricsOptions = Conventions.MetricsOptions.Create(config); IMetricsRoot metrics = DefaultMetrics.Create(metricsOptions, appInfo); DefaultMetrics.ConfigureServices(services, metrics, metricsOptions); // log few details about so far configured services for debugging purposes defaultLogger.Debug("StartUp: application {appInfo}", appInfo); defaultLogger.Debug("StartUp: logging {options}", logsOptions); defaultLogger.Debug("StartUp: metrics {options}", metricsOptions); // execute registered service installers foreach (var installer in installers.Values) { defaultLogger.Debug($"StartUp: service installer {installer.GetType().FullName}"); installer.Install(services, config); } var provider = services.BuildServiceProvider(validateScopes: true); return(provider, appInfo, defaultLogger); }
public MefSonarQubeService(ILogger logger) : base(new LoggingHttpClientHandler(logger), DefaultConfiguration.Configure(new RequestFactory(s => logger.LogDebug(s))), userAgent: $"SonarLint Visual Studio/{VersionHelper.SonarLintVersion}") { }