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_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);
        }