public async Tasks.Task VerifyProjectAdded_DifferentProviders() { var projectGuid = Guid.NewGuid(); var mockIVsStartupProjectsListService = IVsStartupProjectsListServiceFactory.CreateMockInstance(projectGuid); var iVsStartupProjectsListService = mockIVsStartupProjectsListService.Object; var serviceProvider = SVsServiceProviderFactory.Create(iVsStartupProjectsListService); var debuggerLaunchProvider = CreateDebuggerLaunchProviderInstance(); debuggerLaunchProvider.Debuggers.Add(GetLazyDebugLaunchProvider(debugs: false)); debuggerLaunchProvider.Debuggers.Add(GetLazyDebugLaunchProvider(debugs: true)); var activeConfiguredProjectWithLaunchProviders = IActiveConfiguredProjectFactory.ImplementValue(() => debuggerLaunchProvider); var startupProjectRegistrar = CreateInstance( projectGuid, serviceProvider, activeConfiguredProjectWithLaunchProviders); var testWrapperMethod = new DataFlowExtensionMethodCaller(new DataFlowExtensionMethodWrapperMock()); startupProjectRegistrar.WrapperMethodCaller = testWrapperMethod; await startupProjectRegistrar.OnProjectFactoryCompletedAsync(); mockIVsStartupProjectsListService.Verify(s => s.AddProject(ref projectGuid), Times.Once); mockIVsStartupProjectsListService.Verify(s => s.RemoveProject(ref projectGuid), Times.Never); }
public async Tasks.Task VerifyProjectNotAdded() { var projectGuid = Guid.NewGuid(); var mockIVsStartupProjectsListService = IVsStartupProjectsListServiceFactory.CreateMockInstance(projectGuid); var iVsStartupProjectsListService = mockIVsStartupProjectsListService.Object; var serviceProvider = SVsServiceProviderFactory.Create(iVsStartupProjectsListService); var debuggerLaunchProvider = CreateDebuggerLaunchProviderInstance(); debuggerLaunchProvider.Debuggers.Add(GetLazyDebugLaunchProvider(debugs: false)); var activeConfiguredProjectWithLaunchProviders = ActiveConfiguredProjectFactory.ImplementValue(() => debuggerLaunchProvider); var startupProjectRegistrar = CreateInstance( serviceProvider, activeConfiguredProjectWithLaunchProviders); var testWrapperMethod = new DataFlowExtensionMethodCaller(new DataFlowExtensionMethodWrapperMock()); startupProjectRegistrar.WrapperMethodCaller = testWrapperMethod; await startupProjectRegistrar.Load(); var projectSubscriptionUpdate = IProjectSubscriptionUpdateFactory.FromJson(@"{ ""ProjectChanges"": { ""ConfigurationGeneral"": { ""Difference"": { ""ChangedProperties"": [ ""Something"" ] } } } }"); await startupProjectRegistrar.ConfigurationGeneralRuleBlock_ChangedAsync( IProjectVersionedValueFactory <IProjectSubscriptionUpdate> .Create(projectSubscriptionUpdate)); mockIVsStartupProjectsListService.Verify(s => s.RemoveProject(ref projectGuid), Times.Never); mockIVsStartupProjectsListService.Verify(s => s.AddProject(ref projectGuid), Times.Never); projectSubscriptionUpdate = IProjectSubscriptionUpdateFactory.FromJson(@"{ ""ProjectChanges"": { ""ConfigurationGeneral"": { ""Difference"": { ""ChangedProperties"": [ ""ProjectGuid"" ] }, ""After"": { ""Properties"": { ""ProjectGuid"": ""GuidNotParsable"" } } } } }"); await startupProjectRegistrar.ConfigurationGeneralRuleBlock_ChangedAsync( IProjectVersionedValueFactory <IProjectSubscriptionUpdate> .Create(projectSubscriptionUpdate)); mockIVsStartupProjectsListService.Verify(s => s.RemoveProject(ref projectGuid), Times.Never); mockIVsStartupProjectsListService.Verify(s => s.AddProject(ref projectGuid), Times.Never); }
public StartupProjectRegistrar( SVsServiceProvider serviceProvider, IProjectThreadingService threadingService, IActiveConfiguredProjectSubscriptionService activeConfiguredProjectSubscriptionService, ActiveConfiguredProject <DebuggerLaunchProviders> launchProviders) { Requires.NotNull(serviceProvider, nameof(serviceProvider)); Requires.NotNull(threadingService, nameof(threadingService)); Requires.NotNull(activeConfiguredProjectSubscriptionService, nameof(activeConfiguredProjectSubscriptionService)); Requires.NotNull(launchProviders, nameof(launchProviders)); _serviceProvider = serviceProvider; _threadingService = threadingService; _activeConfiguredProjectSubscriptionService = activeConfiguredProjectSubscriptionService; _launchProviders = launchProviders; WrapperMethodCaller = new DataFlowExtensionMethodCaller(new DataFlowExtensionMethodWrapper()); }
public StartupProjectRegistrar( IUnconfiguredProjectVsServices projectVsServices, SVsServiceProvider serviceProvider, IProjectThreadingService threadingService, IActiveConfiguredProjectSubscriptionService activeConfiguredProjectSubscriptionService, ActiveConfiguredProject <DebuggerLaunchProviders> launchProviders) : base(projectVsServices.ThreadingService.JoinableTaskContext) { Requires.NotNull(projectVsServices, nameof(projectVsServices)); Requires.NotNull(serviceProvider, nameof(serviceProvider)); Requires.NotNull(threadingService, nameof(threadingService)); Requires.NotNull(activeConfiguredProjectSubscriptionService, nameof(activeConfiguredProjectSubscriptionService)); Requires.NotNull(launchProviders, nameof(launchProviders)); _projectVsServices = projectVsServices; _startupProjectsListService = serviceProvider.GetService <IVsStartupProjectsListService, SVsStartupProjectsListService>(); _threadingService = threadingService; _activeConfiguredProjectSubscriptionService = activeConfiguredProjectSubscriptionService; _launchProviders = launchProviders; WrapperMethodCaller = new DataFlowExtensionMethodCaller(new DataFlowExtensionMethodWrapper()); }