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);
        }
Example #3
0
        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);
        }