public LaunchProfilesDebugLaunchProviderTests() { _mockWebProvider.Setup(x => x.SupportsProfile(It.IsAny <ILaunchProfile>())).Returns <ILaunchProfile>((p) => p.CommandName == "IISExpress"); _mockWebProvider.Setup(x => x.QueryDebugTargetsAsync(It.IsAny <DebugLaunchOptions>(), It.IsAny <ILaunchProfile>())).Returns <DebugLaunchOptions, ILaunchProfile>((o, p) => { return(Task.FromResult((IReadOnlyList <IDebugLaunchSettings>)_webProviderSettings)); }); _mockDockerProvider.Setup(x => x.SupportsProfile(It.IsAny <ILaunchProfile>())).Returns <ILaunchProfile>((p) => p.CommandName == "Docker"); _mockDockerProvider.Setup(x => x.QueryDebugTargetsAsync(It.IsAny <DebugLaunchOptions>(), It.IsAny <ILaunchProfile>())).Returns <DebugLaunchOptions, ILaunchProfile>((o, p) => { return(Task.FromResult((IReadOnlyList <IDebugLaunchSettings>)_dockerProviderSettings)); }); _mockExeProvider.Setup(x => x.SupportsProfile(It.IsAny <ILaunchProfile>())).Returns <ILaunchProfile>((p) => string.IsNullOrEmpty(p.CommandName) || p.CommandName == "Project"); _mockExeProvider.Setup(x => x.QueryDebugTargetsAsync(It.IsAny <DebugLaunchOptions>(), It.IsAny <ILaunchProfile>())).Returns <DebugLaunchOptions, ILaunchProfile>((o, p) => { return(Task.FromResult((IReadOnlyList <IDebugLaunchSettings>)_exeProviderSettings)); }); var mockMetadata = new Mock <IOrderPrecedenceMetadataView>(); _launchProviders.Add(new Lazy <IDebugProfileLaunchTargetsProvider, IOrderPrecedenceMetadataView>(() => _mockWebProvider.Object, mockMetadata.Object)); _launchProviders.Add(new Lazy <IDebugProfileLaunchTargetsProvider, IOrderPrecedenceMetadataView>(() => _mockDockerProvider.Object, mockMetadata.Object)); _launchProviders.Add(new Lazy <IDebugProfileLaunchTargetsProvider, IOrderPrecedenceMetadataView>(() => _mockExeProvider.Object, mockMetadata.Object)); _LaunchSettingsProviderMoq.Setup(x => x.ActiveProfile).Returns(() => _activeProfile); _LaunchSettingsProviderMoq.Setup(x => x.WaitForFirstSnapshot(It.IsAny <int>())).Returns(() => { if (_activeProfile != null) { return(Task.FromResult((ILaunchSettings) new LaunchSettings(new List <ILaunchProfile>() { _activeProfile }, null, _activeProfile.Name))); } return(Task.FromResult((ILaunchSettings) new LaunchSettings())); }); }
public static void Add <T>(this OrderPrecedenceImportCollection <T> collection, T value, string appliesTo = null, int orderPrecedence = 0) { var metadata = IOrderPrecedenceMetadataViewFactory.Create(appliesTo, orderPrecedence); var export = new Lazy <T, IOrderPrecedenceMetadataView>(() => value, metadata); collection.Add(export); }
public static void Add <T>(this OrderPrecedenceImportCollection <T, INamedExportMetadataView> collection, string name, T item) { var mock = new Mock <INamedExportMetadataView>(); mock.Setup(v => v.Name) .Returns(name); var result = new Lazy <T, INamedExportMetadataView>(() => item, mock.Object); collection.Add(result); }
private void InitializeUIProviders() { // We need to get the set of UI providers, if any. _uiProviders = new OrderPrecedenceImportCollection <ILaunchSettingsUIProvider>(ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesFirst, Project); IEnumerable <Lazy <ILaunchSettingsUIProvider, IOrderPrecedenceMetadataView> > uiProviders = GetUIProviders(); foreach (Lazy <ILaunchSettingsUIProvider, IOrderPrecedenceMetadataView> uiProvider in uiProviders) { _uiProviders.Add(uiProvider); } }
/// <summary> /// initializes the collection of UI providers. /// </summary> private void InitializeUIProviders() { // We need to get the set of UI providers, if any. _uiProviders = new OrderPrecedenceImportCollection <ILaunchSettingsUIProvider>(ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesFirst, UnconfiguredProject); var uiProviders = GetUIProviders(); foreach (var uiProvider in uiProviders) { _uiProviders.Add(uiProvider); } }
private static Task <StartupProjectRegistrar> CreateInitializedInstanceAsync(Guid projectGuid, IVsStartupProjectsListService?vsStartupProjectsListService, params IDebugLaunchProvider[] launchProviders) { var projectGuidService = ISafeProjectGuidServiceFactory.ImplementGetProjectGuidAsync(projectGuid); var debuggerLaunchProviders = new OrderPrecedenceImportCollection <IDebugLaunchProvider>(ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesFirst); int orderPrecedence = 0; foreach (IDebugLaunchProvider launchProvider in launchProviders) { debuggerLaunchProviders.Add(launchProvider, orderPrecedence: orderPrecedence++); } return(CreateInitializedInstanceAsync(vsStartupProjectsListService: vsStartupProjectsListService, projectGuidService: projectGuidService, launchProviders: IActiveConfiguredValuesFactory.ImplementValues(() => debuggerLaunchProviders))); }
internal void SetJsonSerializationProviders(LaunchSettingsUnderTest provider) { var mockMetadata = new Mock <IOrderPrecedenceMetadataView>(); var mockIJsonSection = new Mock <IJsonSection>(); mockIJsonSection.Setup(s => s.JsonSection).Returns("iisSettings"); mockIJsonSection.Setup(s => s.SerializationType).Returns(typeof(IISSettingsData)); var lazyProvider = new Lazy <ILaunchSettingsSerializationProvider, IJsonSection>(() => { var mockSerializer = new Mock <ILaunchSettingsSerializationProvider>(); return(mockSerializer.Object); }, mockIJsonSection.Object, true); var settingsProviders = new OrderPrecedenceImportCollection <ILaunchSettingsSerializationProvider, IJsonSection>(ImportOrderPrecedenceComparer.PreferenceOrder.PreferredComesFirst, (UnconfiguredProject)null); settingsProviders.Add(new Lazy <ILaunchSettingsSerializationProvider, IJsonSection>(() => lazyProvider.Value, mockIJsonSection.Object)); provider.SetSettingsProviderCollection(settingsProviders); }
protected override object GetValue(ConfiguredProject project) { // Get the "natural" (unfiltered) export provider so that can we pull all the possible // values, not just the ones that are applicable to the current set of capabilities when // we call this. // // This so that when capabilities change over time, the resulting OrderPrecedenceImportCollection // responds to the changes and filters the list based on the new set of capabilities. // // This basically mimics importing OrderPrecedenceImportCollection directly. ExportProvider provider = project.Services.ExportProvider.GetExportedValue <ExportProvider>(); var values = new OrderPrecedenceImportCollection <T>(projectCapabilityCheckProvider: project); foreach (Lazy <T, IOrderPrecedenceMetadataView> value in provider.GetExports <T, IOrderPrecedenceMetadataView>()) { values.Add(value); } return(values); }