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 static FSharpProjectDesignerPageProvider CreateInstance(params string[] capabilities) { Func <string, bool> containsCapability = c => capabilities.Contains(c); var capabilitiesService = IProjectCapabilitiesServiceFactory.ImplementsContains(containsCapability); return(new FSharpProjectDesignerPageProvider(capabilitiesService)); }
private static VisualBasicProjectDesignerPageProvider CreateInstance(params string[] capabilities) { bool containsCapability(string c) => capabilities.Contains(c); var capabilitiesService = IProjectCapabilitiesServiceFactory.ImplementsContains(containsCapability); return(new VisualBasicProjectDesignerPageProvider(capabilitiesService)); }
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); }
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)); }
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); }
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); }