private static FSharpProjectDesignerPageProvider CreateInstance(params string[] capabilities)
        {
            Func <string, bool> containsCapability = c => capabilities.Contains(c);
            var capabilitiesService = IProjectCapabilitiesServiceFactory.ImplementsContains(containsCapability);

            return(new FSharpProjectDesignerPageProvider(capabilitiesService));
        }
Esempio n. 2
0
        private EditProjectFileCommand CreateInstance(
            UnconfiguredProject unconfiguredProject = null,
            bool implementCapabilities       = true,
            IMsBuildAccessor msbuildAccessor = null,
            IFileSystem fileSystem           = null,
            ITextDocumentFactoryService textDocumentService      = null,
            IVsEditorAdaptersFactoryService editorAdapterService = null,
            IProjectThreadingService threadingService            = null,
            IVsShellUtilitiesHelper shellUtilities = null
            )
        {
            UnitTestHelper.IsRunningUnitTests = true;
            var uProj        = unconfiguredProject ?? IUnconfiguredProjectFactory.Create();
            var capabilities = IProjectCapabilitiesServiceFactory.ImplementsContains(CapabilityChecker(implementCapabilities));
            var msbuild      = msbuildAccessor ?? IMsBuildAccessorFactory.Create();
            var fs           = fileSystem ?? new IFileSystemMock();
            var tds          = textDocumentService ?? ITextDocumentFactoryServiceFactory.Create();
            var eas          = editorAdapterService ?? IVsEditorAdaptersFactoryServiceFactory.Create();
            var threadServ   = threadingService ?? IProjectThreadingServiceFactory.Create();
            var shellUt      = shellUtilities ?? new TestShellUtilitiesHelper(
                (sp, path) => Tuple.Create(IVsHierarchyFactory.Create(), (uint)1, IVsPersistDocDataFactory.Create(), (uint)1),
                (sp, path, edType, logView) => IVsWindowFrameFactory.Create());

            return(new EditProjectFileCommand(uProj, capabilities, IServiceProviderFactory.Create(), msbuild, fs, tds, eas, threadServ, shellUt));
        }
        private ProjectRootImageProjectTreePropertiesProvider CreateInstance(IProjectCapabilitiesService capabilities, IProjectImageProvider imageProvider)
        {
            capabilities ??= IProjectCapabilitiesServiceFactory.Create();
            imageProvider ??= IProjectImageProviderFactory.Create();

            return(new ProjectRootImageProjectTreePropertiesProvider(capabilities, imageProvider));
        }
        private static VisualBasicProjectDesignerPageProvider CreateInstance(params string[] capabilities)
        {
            bool containsCapability(string c) => capabilities.Contains(c);

            var capabilitiesService = IProjectCapabilitiesServiceFactory.ImplementsContains(containsCapability);

            return(new VisualBasicProjectDesignerPageProvider(capabilitiesService));
        }
Esempio n. 5
0
        public async Task AllowProjectLoadAsync_WhenContainsCapability_ReturnsTrue(string fullPath)
        {
            var project             = UnconfiguredProjectFactory.ImplementFullPath(fullPath);
            var capabilitiesService = IProjectCapabilitiesServiceFactory.ImplementsContains(c => true);

            var veto = CreateInstance(project, capabilitiesService);

            var result = await veto.AllowProjectLoadAsync(true, ProjectConfigurationFactory.Create("Debug|AnyCPU"), CancellationToken.None);

            Assert.True(result);
        }
Esempio n. 6
0
        public async Task AbstractEditProjectFileCommand_WrongCmdId_DoesNotHandle()
        {
            var capabilityChecker = IProjectCapabilitiesServiceFactory.ImplementsContains(CapabilityChecker(true));
            var tree = ProjectTreeParser.Parse(@"
Root (flags: {ProjectRoot})
");

            var nodes = ImmutableHashSet.Create(tree);

            var command = CreateInstance();

            Assert.False(await command.TryHandleCommandAsync(nodes, 0, true, 0, IntPtr.Zero, IntPtr.Zero));
        }
Esempio n. 7
0
        public async Task AllowProjectLoadAsync_WhenMissingCapability_ReturnsFail(string fullPath)
        {
            var project             = UnconfiguredProjectFactory.ImplementFullPath(fullPath);
            var capabilitiesService = IProjectCapabilitiesServiceFactory.ImplementsContains(c => false);

            var veto = CreateInstance(project, capabilitiesService);

            var result = await Assert.ThrowsAnyAsync <Exception>(() =>
            {
                return(veto.AllowProjectLoadAsync(true, ProjectConfigurationFactory.Create("Debug|AnyCPU"), CancellationToken.None));
            });

            Assert.Equal(VSConstants.E_FAIL, result.HResult);
        }
Esempio n. 8
0
        public async Task AbstractEditProjectFileCommand_ValidNode_ShouldHandle()
        {
            var capabilityChecker = IProjectCapabilitiesServiceFactory.ImplementsContains(CapabilityChecker(true));
            var tree = ProjectTreeParser.Parse(@"
Root (flags: {ProjectRoot})
");

            var nodes = ImmutableHashSet.Create(tree);

            var command = CreateInstance();

            var result = await command.GetCommandStatusAsync(nodes, CommandId, true, "", 0);

            Assert.True(result.Handled);
            Assert.Equal(CommandStatus.Enabled | CommandStatus.Supported, result.Status);
            Assert.Equal($"Edit Root.{EditProjectFileCommand.Extension}", result.CommandText);
        }
        public void CalculatePropertyValues_WhenSharedProjectRootAsTree_SetsIconToSharedProjectRoot(string input, string expected)
        {
            var capabilities = IProjectCapabilitiesServiceFactory.ImplementsContains(capability =>
            {
                return(capability == ProjectCapabilities.SharedAssetsProject);
            });

            var imageProvider = IProjectImageProviderFactory.ImplementGetProjectImage(ProjectImageKey.SharedProjectRoot, new ProjectImageMoniker(new Guid("{A140CD9F-FF94-483C-87B1-9EF5BE9F469A}"), 1));

            var propertiesProvider = CreateInstance(capabilities, imageProvider);

            var inputTree    = ProjectTreeParser.Parse(input);
            var expectedTree = ProjectTreeParser.Parse(expected);
            var result       = propertiesProvider.ChangePropertyValuesForEntireTree(inputTree);

            AssertAreEquivalent(expectedTree, result);
        }