Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 6
0
        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}")
 {
 }