internal static /* for testing purposes */ IBindingProcess CreateBindingProcess(IHost host, BindCommandArgs bindingArgs) { // Choose the type of binding var configProvider = host.GetService <IConfigurationProvider>(); configProvider.AssertLocalServiceIsNotNull(); var currentConfiguration = configProvider.GetConfiguration(); SonarLintMode modeToBind; INuGetBindingOperation nugetBindingOp; // If we are currently in standalone then the project is being bound for the first time. // Otherwise, we are updating an existing binding var isFirstBinding = currentConfiguration.Mode == SonarLintMode.Standalone; if (currentConfiguration.Mode == SonarLintMode.LegacyConnected) { host.Logger.WriteLine(Strings.Bind_UpdatingLegacyBinding); modeToBind = SonarLintMode.LegacyConnected; nugetBindingOp = new NuGetBindingOperation(host, host.Logger); } else { host.Logger.WriteLine( isFirstBinding ? Strings.Bind_FirstTimeBinding : Strings.Bind_UpdatingNewStyleBinding); modeToBind = SonarLintMode.Connected; nugetBindingOp = new NoOpNuGetBindingOperation(host.Logger); } var solutionBindingOp = new SolutionBindingOperation( host, bindingArgs.Connection, bindingArgs.ProjectKey, bindingArgs.ProjectName, modeToBind, host.Logger); var unboundProjectFinder = new UnboundProjectFinder(host); var dotNetConfigProvider = new DotNetBindingConfigProvider(host.SonarQubeService, nugetBindingOp, bindingArgs.Connection.ServerUri.ToString(), bindingArgs.ProjectName, host.Logger); var cppConfigProvider = new CFamilyBindingConfigProvider(host.SonarQubeService, host.Logger); var ruleConfigProvider = new CompositeBindingConfigProvider(dotNetConfigProvider, cppConfigProvider); var bindingProcess = new BindingProcessImpl(host, bindingArgs, solutionBindingOp, nugetBindingOp, unboundProjectFinder, ruleConfigProvider, isFirstBinding); return(bindingProcess); }
public UnboundProjectFinder CreateTestSubject() { var projectSystemHelper = new Mock <IProjectSystemHelper>(); projectSystemHelper.Setup(x => x.GetFilteredSolutionProjects()).Returns(projects); var configProviderMock = new Mock <IConfigurationProviderService>(); configProviderMock.Setup(x => x.GetConfiguration()).Returns(bindingConfiguration); var sp = new ConfigurableServiceProvider(); sp.RegisterService(typeof(IProjectSystemHelper), projectSystemHelper.Object); sp.RegisterService(typeof(IConfigurationProviderService), configProviderMock.Object); var testSubject = new UnboundProjectFinder(sp, projectBinderFactoryMock.Object); return(testSubject); }
public UnboundProjectFinder CreateTestSubject() { var projectSystemHelper = new Mock <IProjectSystemHelper>(); projectSystemHelper.Setup(x => x.GetFilteredSolutionProjects()).Returns(projects); var configProviderMock = new Mock <IConfigurationProvider>(); configProviderMock.Setup(x => x.GetConfiguration()) .Returns(new BindingConfiguration( new BoundSonarQubeProject(new Uri("http://localhost:8888"), sqProjectKey, "anySQProjectName"), mode)); var sp = new ConfigurableServiceProvider(); sp.RegisterService(typeof(ISolutionRuleSetsInformationProvider), ruleSetsInfoProvider.Object); sp.RegisterService(typeof(IProjectSystemHelper), projectSystemHelper.Object); sp.RegisterService(typeof(IConfigurationProvider), configProviderMock.Object); sp.RegisterService(typeof(IRuleSetSerializer), ruleSetSerializerMock.Object); var testSubject = new UnboundProjectFinder(sp, fileMock.Object); return(testSubject); }