public async Task TryHandleCommandAsync_FolderAsNodes_CallsShowAddProjectItemDlgAsyncWithFilter() { int callCount = 0; string dirFilter = ""; string templateFilter = ""; string browseLocations = ""; var g = new Guid(); string folder = "folderName"; var dlg = IVsAddProjectItemDlgFactory.ImplementWithParams((id, guid, project, flags, dFilter, tFilter, browseLocs, filter, showAgain) => { callCount++; dirFilter = dFilter; templateFilter = tFilter; browseLocations = browseLocs; return(0); }, g, folder, string.Empty, 0); var command = CreateInstance(provider: IProjectTreeProviderFactory.Create(folder), addItemDialog: dlg); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Properties (flags: {Folder AppDesignerFolder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); await command.TryHandleCommandAsync(nodes, TestAddItemCommand.CommandId, true, 0, IntPtr.Zero, IntPtr.Zero); Assert.Equal(1, callCount); Assert.Equal(TestAddItemCommand.ResourceIds.DirName.ToString(), dirFilter); Assert.Equal(TestAddItemCommand.ResourceIds.TemplateName.ToString(), templateFilter); Assert.Equal("folderName", browseLocations); }
public async Task TryHandleCommandAsync_FolderAsNodes_ReturnsTrue() { var command = CreateInstance(provider: IProjectTreeProviderFactory.Create(""), dlg: IVsAddProjectItemDlgFactory.Create(0)); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Code (flags: {Folder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); var result = await command.TryHandleCommandAsync(nodes, GetCommandId(), true, 0, IntPtr.Zero, IntPtr.Zero); Assert.True(result); }
public async Task TryHandleCommand_FolderAsNodes_ReturnsTrueWhenUserClicksCancel() { var command = CreateInstance(provider: IProjectTreeProviderFactory.Create(""), addItemDialog: IVsAddProjectItemDlgFactory.Create(VSConstants.OLE_E_PROMPTSAVECANCELLED)); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Code (flags: {Folder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); var result = await command.TryHandleCommandAsync(nodes, TestAddItemCommand.CommandId, true, 0, IntPtr.Zero, IntPtr.Zero); Assert.True(result); }
public async Task GetCommandStatusAsync_FolderAsNodes_ReturnsHandled() { var command = CreateInstance(provider: IProjectTreeProviderFactory.Create(""), dlg: IVsAddProjectItemDlgFactory.Create(0)); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Code (flags: {Folder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); var result = await command.GetCommandStatusAsync(nodes, GetCommandId(), true, "commandText", (CommandStatus)0); Assert.True(result.Handled); Assert.Equal("commandText", result.CommandText); Assert.Equal(CommandStatus.Enabled | CommandStatus.Supported, result.Status); }
public async Task TryHandleCommandAsync_FolderAsNodes_CallsShowAddProjectItemDlgAsyncWithFilter() { int callCount = 0; string dirFilter = ""; string templateFilter = ""; string browseLocations = ""; Guid g = new Guid(); string folder = "folderName"; var dlg = IVsAddProjectItemDlgFactory.ImplementWithParams((id, guid, project, flags, dFilter, tFilter, browseLocs, filter, showAgain) => { callCount++; dirFilter = dFilter; templateFilter = tFilter; browseLocations = browseLocs; return(0); }, g, folder, string.Empty, 0); var projectProperties = ProjectPropertiesFactory.Create(UnconfiguredProjectFactory.Create(), new[] { new PropertyPageData { Category = ConfigurationGeneral.SchemaName, PropertyName = ConfigurationGeneral.ProjectGuidProperty, Value = g.ToString() } }); var command = CreateInstance(provider: IProjectTreeProviderFactory.Create(folder), dlg: dlg); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Properties (flags: {Folder AppDesignerFolder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); await command.TryHandleCommandAsync(nodes, GetCommandId(), true, 0, IntPtr.Zero, IntPtr.Zero); Assert.Equal(1, callCount); Assert.Equal(DirName, dirFilter); Assert.Equal(VSResources.ClassTemplateName, templateFilter); Assert.Equal("folderName", browseLocations); }
public async Task TryHandleCommand_FolderAsNodes_ReturnsTrueWhenUserClicksCancel() { var projectProperties = ProjectPropertiesFactory.Create(UnconfiguredProjectFactory.Create(), new[] { new PropertyPageData { Category = ConfigurationGeneral.SchemaName, PropertyName = ConfigurationGeneral.ProjectGuidProperty, Value = Guid.NewGuid().ToString() } }); var command = CreateInstance(provider: IProjectTreeProviderFactory.Create(""), dlg: IVsAddProjectItemDlgFactory.Create(VSConstants.OLE_E_PROMPTSAVECANCELLED)); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Code (flags: {Folder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); var result = await command.TryHandleCommandAsync(nodes, GetCommandId(), true, 0, IntPtr.Zero, IntPtr.Zero); Assert.True(result); }
public async Task TryHandleCommandAsync_FolderAsNodes_ReturnsTrue() { var projectProperties = ProjectPropertiesFactory.Create(IUnconfiguredProjectFactory.Create(), new[] { new PropertyPageData { Category = "Project", PropertyName = "ProjectGuid", Value = Guid.NewGuid().ToString() } }); var command = CreateInstance(provider: IProjectTreeProviderFactory.Create(""), dlg: IVsAddProjectItemDlgFactory.Create(0), properties: () => projectProperties); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Code (flags: {Folder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); var result = await command.TryHandleCommandAsync(nodes, GetCommandId(), true, 0, IntPtr.Zero, IntPtr.Zero); Assert.True(result); }
public async Task GetCommandStatusAsync_FolderAsNodes_ReturnsHandled() { var projectProperties = ProjectPropertiesFactory.Create(IUnconfiguredProjectFactory.Create(), new[] { new PropertyPageData { Category = ConfigurationGeneral.SchemaName, PropertyName = ConfigurationGeneral.ProjectGuidProperty, Value = Guid.NewGuid().ToString() } }); var command = CreateInstance(provider: IProjectTreeProviderFactory.Create(""), dlg: IVsAddProjectItemDlgFactory.Create(0), properties: () => projectProperties); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Code (flags: {Folder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); var result = await command.GetCommandStatusAsync(nodes, GetCommandId(), true, "commandText", (CommandStatus)0); Assert.True(result.Handled); Assert.Equal("commandText", result.CommandText); Assert.Equal(CommandStatus.Enabled | CommandStatus.Supported, result.Status); }
public async Task GetCommandStatusAsync_NonAppDesignerFolderAsNodes_ReturnsUnhandled() { var command = CreateInstance(provider: IProjectTreeProviderFactory.Create(), dlg: IVsAddProjectItemDlgFactory.Create()); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Properties (flags: {AppDesignerFolder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); var result = await command.GetCommandStatusAsync(nodes, GetCommandId(), true, "commandText", (CommandStatus)0); Assert.False(result.Handled); }
public async Task TryHandleCommandAsync_NonRegularFolderAsNodes_ReturnsFalse() { var command = CreateInstance(provider: IProjectTreeProviderFactory.Create(), addItemDialog: IVsAddProjectItemDlgFactory.Create()); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Properties (flags: {AppDesignerFolder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); var result = await command.TryHandleCommandAsync(nodes, TestAddItemCommand.CommandId, true, 0, IntPtr.Zero, IntPtr.Zero); Assert.False(result); }