public void Constructor_NullAsImageProvider_ThrowsArgumentNull() { var designerService = IProjectDesignerServiceFactory.Create(); Assert.Throws <ArgumentNullException>("imageProvider", () => { new AppDesignerFolderProjectTreePropertiesProvider((IProjectImageProvider)null, designerService); }); }
public void ChangePropertyValues_TreeWithMyProjectFolder_ReturnsUnmodifiedTree(string input) { // "Properties" is the default, so we shouldn't find "My Project" var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService); var tree = ProjectTreeParser.Parse(input); Verify(propertiesProvider, tree, tree); }
public void Constructor_NullAsImageProvider_ThrowsArgumentNull() { var projectServices = IUnconfiguredProjectCommonServicesFactory.Create(); var designerService = IProjectDesignerServiceFactory.Create(); Assert.Throws <ArgumentNullException>("imageProvider", () => { new PropertiesFolderProjectTreePropertiesProvider((IProjectImageProvider)null, projectServices, designerService); }); }
public void Constructor_NullAsProjectServices_ThrowsArgumentNull() { var imageProvider = IProjectImageProviderFactory.Create(); var designerService = IProjectDesignerServiceFactory.Create(); Assert.Throws <ArgumentNullException>("projectServices", () => { new MyProjectFolderProjectTreePropertiesProvider(imageProvider, (IUnconfiguredProjectCommonServices)null, designerService); }); }
public void ChangePropertyValues_TreeWithNestedAppDesignerFolder_ReturnsUnmodifiedTree(string input) { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService); var tree = ProjectTreeParser.Parse(input); Verify(propertiesProvider, tree, tree); }
public void ChangePropertyValues_TreeWithAppDesignerFolderAlreadyMarkedAsAppDesignerOrBubbleup_AddsRemainingFlags(string input, string expected) { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService); var inputTree = ProjectTreeParser.Parse(input); var expectedTree = ProjectTreeParser.Parse(expected); Verify(propertiesProvider, expectedTree, inputTree); }
public void ChangePropertyValues_TreeWithAppDesignerFolder_ReturnsCandidateMarkedWithAppDesignerFolderAndBubbleUp(string input, string expected) { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService); var inputTree = ProjectTreeParser.Parse(input); var expectedTree = ProjectTreeParser.Parse(expected); Verify(propertiesProvider, expectedTree, inputTree); }
public void ChangePropertyValues_TreeWithMyProjectCandidateAndContentVisibleOnlyInShowAllFiles_ReturnsCandidateMarkedWithAppDesignerFolderAndBubbleUp(string input, string expected) { // Mimic's Visual Basic projects var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService); var inputTree = ProjectTreeParser.Parse(input); var expectedTree = ProjectTreeParser.Parse(expected); Verify(propertiesProvider, expectedTree, inputTree, folderName: "My Project", contentOnlyVisibleInShowAllFiles: true); }
public void ChangePropertyValues_TreeWithPropertiesFolder_ReturnsUnmodifiedTree(string input) { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService); var tree = ProjectTreeParser.Parse(input); var result = propertiesProvider.ChangePropertyValuesForEntireTree(tree); AssertAreEquivalent(tree, result); }
public void ChangePropertyValues_TreeWithAppDesignerFolder_SetsIconAndExpandedIconToAppDesignerFolder(string input, string expected) { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var imageProvider = IProjectImageProviderFactory.ImplementGetProjectImage(ProjectImageKey.AppDesignerFolder, new ProjectImageMoniker(new Guid("AE27A6B0-E345-4288-96DF-5EAF394EE369"), 1)); var propertiesProvider = CreateInstance(imageProvider, designerService); var inputTree = ProjectTreeParser.Parse(input); var expectedTree = ProjectTreeParser.Parse(expected); Verify(propertiesProvider, expectedTree, inputTree); }
public void ChangePropertyValues_TreeWithAppDesignerFolderWhenImageProviderReturnsNull_DoesNotSetIconAndExpandedIcon(string input, string expected) { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var imageProvider = IProjectImageProviderFactory.ImplementGetProjectImage(ProjectImageKey.AppDesignerFolder, null); var propertiesProvider = CreateInstance(imageProvider, designerService); var inputTree = ProjectTreeParser.Parse(input); var expectedTree = ProjectTreeParser.Parse(expected); Verify(propertiesProvider, expectedTree, inputTree); }
public void ChangePropertyValues_TreeWithMyProjectCandidateAlreadyMarkedAsAppDesignerOrBubbleup_AddsRemainingFlags(string input, string expected) { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService); var inputTree = ProjectTreeParser.Parse(input); var expectedTree = ProjectTreeParser.Parse(expected); var result = propertiesProvider.ChangePropertyValuesForEntireTree(inputTree); AssertAreEquivalent(expectedTree, result); }
public void ChangePropertyValues_TreeWithMyProjectCandidate_ReturnsCandidateMarkedWithAppDesignerFolderAndBubbleUp(string input, string expected) { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService); var inputTree = ProjectTreeParser.Parse(input); var expectedTree = ProjectTreeParser.Parse(expected); var result = propertiesProvider.ChangePropertyValuesForEntireTree(inputTree); AssertAreEquivalent(expectedTree, result); }
public void ChangePropertyValues_TreeWithAppDesignerFolderButSupportsProjectDesignerFalse_ReturnsUnmodifiedTree() { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => false); // Don't support AppDesigner var propertiesProvider = CreateInstance(designerService); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Properties (flags: {Folder}) "); Verify(propertiesProvider, tree, tree); }
public void ChangePropertyValues_TreeWithPropertiesCandidateWhenImageProviderReturnsNull_DoesNotSetIconAndExpandedIcon(string input, string expected) { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var imageProvider = IProjectImageProviderFactory.ImplementGetProjectImage(ProjectImageKey.AppDesignerFolder, null); var propertiesProvider = CreateInstance(imageProvider, designerService); var inputTree = ProjectTreeParser.Parse(input); var expectedTree = ProjectTreeParser.Parse(expected); var result = propertiesProvider.ChangePropertyValuesForEntireTree(inputTree); AssertAreEquivalent(expectedTree, result); }
public void ChangePropertyValues_TreeWithMyProjectCandidateButSupportsProjectDesignerFalse_ReturnsUnmodifiedTree() { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => false); // Don't support AppDesigner var propertiesProvider = CreateInstance(designerService); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) My Project (flags: {Folder}) "); var result = propertiesProvider.ChangePropertyValuesForEntireTree(tree); AssertAreEquivalent(tree, result); }
public void ChangePropertyValues_ProjectWithNonDefaultAppDesignerFolderProperty_ReturnsCandidateMarkedWithAppDesignerFolderAndBubbleUp() { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService); var inputTree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) FooBar (flags: {Folder}) "); var expectedTree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) FooBar (flags: {Folder AppDesignerFolder BubbleUp}) "); Verify(propertiesProvider, expectedTree, inputTree, folderName: "FooBar"); }
public void ChangePropertyValues_ProjectWithEmptyAppDesignerFolderProperty_DefaultsToProperties() { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService); var inputTree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Properties (flags: {Folder}) "); var expectedTree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Properties (flags: {Folder AppDesignerFolder BubbleUp}) "); Verify(propertiesProvider, expectedTree, inputTree, folderName: ""); }
private MyProjectFolderProjectTreePropertiesProvider CreateInstance(IProjectImageProvider imageProvider, IProjectDesignerService designerService, string appDesignerFolder = "My Project") { designerService = designerService ?? IProjectDesignerServiceFactory.Create(); var threadingService = IProjectThreadingServiceFactory.Create(); var project = IUnconfiguredProjectFactory.Create(); var projectProperties = ProjectPropertiesFactory.Create(project, new PropertyPageData() { Category = nameof(ConfigurationGeneral), PropertyName = nameof(ConfigurationGeneral.AppDesignerFolder), Value = appDesignerFolder }); var projectServices = IUnconfiguredProjectCommonServicesFactory.Create(project, threadingService, projectProperties.ConfiguredProject, projectProperties); return(new MyProjectFolderProjectTreePropertiesProvider(imageProvider ?? IProjectImageProviderFactory.Create(), projectServices, designerService)); }
public void ChangePropertyValues_ProjectWithNullMyProjectFolder_DefaultsToMyProject() { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService, appDesignerFolder: null); var inputTree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) My Project (flags: {Folder}) "); var expectedTree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) My Project (flags: {Folder AppDesignerFolder BubbleUp}) "); var result = propertiesProvider.ChangePropertyValuesForEntireTree(inputTree); AssertAreEquivalent(expectedTree, result); }
public void ChangePropertyValues_ProjectWithNonDefaultMyProjectFolder_ReturnsCandidateMarkedWithAppDesignerFolderAndBubbleUp() { var designerService = IProjectDesignerServiceFactory.ImplementSupportsProjectDesigner(() => true); var propertiesProvider = CreateInstance(designerService, appDesignerFolder: "FooBar"); var inputTree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) FooBar (flags: {Folder}) "); var expectedTree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) FooBar (flags: {Folder AppDesignerFolder BubbleUp}) "); var result = propertiesProvider.ChangePropertyValuesForEntireTree(inputTree); AssertAreEquivalent(expectedTree, result); }
public async Task TryHandleCommandAsync_AppDesignerFolderAsNodes_CallsShowProjectDesignerAsync() { int callCount = 0; var designerService = IProjectDesignerServiceFactory.ImplementShowProjectDesignerAsync(() => { callCount++; }); var command = CreateInstance(designerService); 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); }
public async Task TryHandleCommandAsync_AppDesignerFolderAsNodes_CallsShowProjectDesignerAsync() { int callCount = 0; var designerService = IProjectDesignerServiceFactory.ImplementShowProjectDesignerAsync(() => { callCount++; }); var command = CreateInstance(designerService); var tree = ProjectTreeParser.Parse(@" Root (flags: {ProjectRoot}) Properties (flags: {Folder AppDesignerFolder}) "); var nodes = ImmutableHashSet.Create(tree.Children[0]); #pragma warning disable RS0003 // Do not directly await a Task (see https://github.com/dotnet/roslyn/issues/6770) await command.TryHandleCommandAsync(nodes, GetCommandId(), true, 0, IntPtr.Zero, IntPtr.Zero); #pragma warning restore RS0003 // Do not directly await a Task Assert.Equal(1, callCount); }
internal override AbstractOpenProjectDesignerCommand CreateInstance(IProjectDesignerService designerService = null) { designerService = designerService ?? IProjectDesignerServiceFactory.Create(); return(new OpenProjectDesignerOnDefaultActionCommand(designerService)); }
private AppDesignerFolderProjectTreePropertiesProvider CreateInstance(IProjectImageProvider imageProvider, IProjectDesignerService designerService) { return(new AppDesignerFolderProjectTreePropertiesProvider(imageProvider ?? IProjectImageProviderFactory.Create(), designerService ?? IProjectDesignerServiceFactory.Create())); }