public async Task GetFileAsync_WhenTreeWithExcludedFile_IsAddedToProjectIfCreateIfNotExist() { var tree = ProjectTreeParser.Parse($@" Project (flags: {{ProjectRoot}}), FilePath: ""C:\Project\Project.csproj"" {_fileName} (flags: {{FileSystemEntity FileOnDisk IncludeInProjectCandidate}}), FilePath: ""C:\Project\{_fileName}"" "); int callCount = 0; var storage = IPhysicalProjectTreeStorageFactory.ImplementAddFileAsync(path => callCount++); var physicalProjectTree = IPhysicalProjectTreeFactory.Create(currentTree: tree, storage: storage); var provider = CreateInstance(physicalProjectTree); await provider.GetFileAsync(0, SpecialFileFlags.CreateIfNotExist); Assert.Equal(1, callCount); }
public async Task GetFileAsync_WhenTreeWithMissingFile_IsCreatedIfCreateIfNotExist() { var tree = ProjectTreeParser.Parse($@" Project (flags: {{ProjectRoot}}), FilePath: ""C:\Project\Project.csproj"" {_fileName} (flags: {{}}), FilePath: ""C:\Project\{_fileName}"" "); int callCount = 0; var storage = IPhysicalProjectTreeStorageFactory.ImplementCreateEmptyFileAsync(path => callCount++); var physicalProjectTree = IPhysicalProjectTreeFactory.Create(currentTree: tree, storage: storage); var provider = CreateInstance(physicalProjectTree); await provider.GetFileAsync(0, SpecialFileFlags.CreateIfNotExist); Assert.Equal(1, callCount); }
public async Task GetFileAsync_WhenTreeWithExistentAppDesignerFolder_ReturnsPathIfCreateIfNotExist() { var tree = ProjectTreeParser.Parse(@" Project (flags: {ProjectRoot}), FilePath: ""C:\Project\Project.csproj"" Properties (flags: {FileSystemEntity Folder AppDesignerFolder}) "); var physicalProjectTree = IPhysicalProjectTreeFactory.Create(currentTree: tree); var provider = CreateInstance(physicalProjectTree); string?result = await provider.GetFileAsync(SpecialFiles.AppDesigner, SpecialFileFlags.CreateIfNotExist); Assert.Equal(@"C:\Project\Properties", result); }
public async Task GetFile_WhenTreeWithAppDesignerFolder_ReturnsPathIfCreateIfNotExist() { var tree = ProjectTreeParser.Parse(@" Project (flags: {ProjectRoot}), FilePath: ""C:\Project\Project.csproj"" My Project (flags: {Folder AppDesignerFolder BubbleUp})"); var treeProvider = new ProjectTreeProvider(); var physicalProjectTree = IPhysicalProjectTreeFactory.Create(provider: treeProvider, currentTree: tree); var provider = CreateInstance(physicalProjectTree); var result = await provider.GetFileAsync(SpecialFiles.AppDesigner, SpecialFileFlags.CreateIfNotExist); Assert.Equal(@"C:\Project\My Project", result); }
public async Task GetFileAsync_WhenTreeWithExcludedFolder_IsAddedToProjectIfCreateIfNotExist() { var tree = ProjectTreeParser.Parse(@" Project (flags: {ProjectRoot}), FilePath: ""C:\Project\Project.csproj"" Properties (flags: {FileSystemEntity Folder IncludeInProjectCandidate}), FilePath: ""C:\Project\Properties"" "); int callCount = 0; var storage = IPhysicalProjectTreeStorageFactory.ImplementAddFolderAsync(path => callCount++); var physicalProjectTree = IPhysicalProjectTreeFactory.Create(currentTree: tree, storage: storage); var provider = CreateInstance(physicalProjectTree); await provider.GetFileAsync(SpecialFiles.AppDesigner, SpecialFileFlags.CreateIfNotExist); Assert.Equal(1, callCount); }
public async Task GetFileAsync_WhenTreeWithMissingAppDesignerFolder_IsCreatedIfCreateIfNotExist() { var tree = ProjectTreeParser.Parse(@" Project (flags: {ProjectRoot}), FilePath: ""C:\Project\Project.csproj"" Properties (flags: {Folder AppDesignerFolder}) "); int callCount = 0; var storage = IPhysicalProjectTreeStorageFactory.ImplementCreateFolderAsync(path => callCount++); var physicalProjectTree = IPhysicalProjectTreeFactory.Create(currentTree: tree, storage: storage); var provider = CreateInstance(physicalProjectTree); await provider.GetFileAsync(SpecialFiles.AppDesigner, SpecialFileFlags.CreateIfNotExist); Assert.Equal(1, callCount); }
public async Task GetFile_WhenTreeWithoutAppDesignerFolder_ReturnsDefaultAppDesignerFolder(string input, string expected) { var tree = ProjectTreeParser.Parse(@" Project (flags: {ProjectRoot}), FilePath: ""C:\Project\Project.csproj"" Properties (flags: {Folder}) "); var treeProvider = new ProjectTreeProvider(); var physicalProjectTree = IPhysicalProjectTreeFactory.Create(provider: treeProvider, currentTree: tree); var projectProperties = CreateProperties(appDesignerFolderName: input); var provider = CreateInstance(physicalProjectTree, projectProperties); var result = await provider.GetFileAsync(SpecialFiles.AppDesigner, SpecialFileFlags.FullPath); Assert.Equal(expected, result); }
public async Task GetFileAsync_WhenTreeWithFileSameName_ReturnsDefaultAppDesignerFolder() { var tree = ProjectTreeParser.Parse(@" Project (flags: {ProjectRoot}), FilePath: ""C:\Project\Project.csproj"" Properties (flags: {FileSystemEntity FileOnDisk}) "); var treeProvider = new ProjectTreeProvider(); var physicalProjectTree = IPhysicalProjectTreeFactory.Create(provider: treeProvider, currentTree: tree); var projectProperties = CreateProperties(appDesignerFolderName: "Properties"); var provider = CreateInstance(physicalProjectTree, projectProperties); var result = await provider.GetFileAsync(SpecialFiles.AppDesigner, SpecialFileFlags.FullPath); Assert.Equal(@"C:\Project\Properties", result); }
public void RootedSourceFilesPushedToWorkspace() { var sourceFilesPushedToWorkspace = new HashSet <string>(StringComparers.Paths); Action <string> onSourceFileAdded = s => Assert.True(sourceFilesPushedToWorkspace.Add(s)); Action <string> onSourceFileRemoved = s => sourceFilesPushedToWorkspace.Remove(s); var project = UnconfiguredProjectFactory.Create(filePath: @"C:\ProjectFolder\Myproject.csproj"); var context = IWorkspaceProjectContextFactory.CreateForSourceFiles(project, onSourceFileAdded, onSourceFileRemoved); var handler = new SourceItemHandler(project, IPhysicalProjectTreeFactory.Create()); var projectDir = Path.GetDirectoryName(project.FullPath); var added = CSharpCommandLineParser.Default.Parse(args: new[] { @"file1.cs", @"..\ProjectFolder\file1.cs" }, baseDirectory: projectDir, sdkDirectory: null); var removed = CSharpCommandLineParser.Default.Parse(args: new string[] { }, baseDirectory: projectDir, sdkDirectory: null); handler.Handle(added: added, removed: removed, context: context, isActiveContext: true); Assert.Equal(1, sourceFilesPushedToWorkspace.Count); Assert.Contains(@"C:\ProjectFolder\file1.cs", sourceFilesPushedToWorkspace); }
public async Task GetFileAsync_WhenTreeWithFileSameName_ThrowsIfCreateIfNotExist() { var tree = ProjectTreeParser.Parse(@" Project (flags: {ProjectRoot}), FilePath: ""C:\Project\Project.csproj"" Properties (flags: {FileSystemEntity FileOnDisk}), FilePath: ""C:\Project\Properties"" "); var treeProvider = new ProjectTreeProvider(); var physicalProjectTree = IPhysicalProjectTreeFactory.Create(provider: treeProvider, currentTree: tree); var projectProperties = CreateProperties(appDesignerFolderName: "Properties"); var provider = CreateInstance(physicalProjectTree, projectProperties); await Assert.ThrowsAsync <IOException>(() => { return(provider.GetFileAsync(SpecialFiles.AppDesigner, SpecialFileFlags.CreateIfNotExist)); }); }
internal AbstractAddItemCommandHandler CreateInstance(IPhysicalProjectTree projectTree = null, IUnconfiguredProjectVsServices projectVsServices = null, IProjectTreeProvider provider = null, IVsAddProjectItemDlg addItemDialog = null, string capability = null) { var configuredProject = ConfiguredProjectFactory.Create(IProjectCapabilitiesScopeFactory.Create(new string[] { capability ?? TestAddItemCommand.Capability })); projectTree ??= IPhysicalProjectTreeFactory.Create(provider); projectVsServices ??= IUnconfiguredProjectVsServicesFactory.Implement( threadingServiceCreator: () => IProjectThreadingServiceFactory.Create() ); var addItemDialogService = IVsUIServiceFactory.Create <SVsAddProjectItemDlg, IVsAddProjectItemDlg>(addItemDialog); string result = "DirName"; var vsShellMock = new Mock <IVsShell>(); vsShellMock.Setup(x => x.LoadPackageString(ref It.Ref <Guid> .IsAny, (uint)TestAddItemCommand.ResourceIds.DirName, out result)).Returns(0); result = "TemplateName"; vsShellMock.Setup(x => x.LoadPackageString(ref It.Ref <Guid> .IsAny, (uint)TestAddItemCommand.ResourceIds.TemplateName, out result)).Returns(0); var vsShellService = IVsUIServiceFactory.Create <SVsShell, IVsShell>(vsShellMock.Object); return(new TestAddItemCommand(configuredProject, projectTree, projectVsServices, addItemDialogService, vsShellService)); }
internal AbstractFindByNameSpecialFileProvider CreateInstance(IProjectTree projectTree) { var physicalProjectTree = IPhysicalProjectTreeFactory.Create(currentTree: projectTree); return CreateInstance(physicalProjectTree); }
private static UnconfiguredProjectVsServices CreateInstance(IUnconfiguredProjectCommonServices commonServices) { var projectTree = new Lazy <IPhysicalProjectTree>(() => IPhysicalProjectTreeFactory.Create()); return(new UnconfiguredProjectVsServices(commonServices, projectTree)); }
private AbstractFindByNameUnderAppDesignerSpecialFileProvider CreateInstance(ISpecialFilesManager specialFilesManager, IProjectTree projectTree) { var physicalProjectTree = IPhysicalProjectTreeFactory.Create(currentTree: projectTree); return(CreateInstance(specialFilesManager, physicalProjectTree)); }
private static WindowsFormsEditorProvider CreateInstance(string projectTree) { var tree = ProjectTreeParser.Parse(projectTree); return(CreateInstance(projectTree: IPhysicalProjectTreeFactory.Create(currentTree: tree))); }
public void Constructor_NullAsProjectVsService_ThrowsArgumentNull() { Assert.Throws <ArgumentNullException>(() => CreateInstance(IPhysicalProjectTreeFactory.Create(), null, SVsServiceProviderFactory.Create())); }
public void Constructor_NullAsAccessor_ThrowsArgumentNull() { Assert.Throws <ArgumentNullException>(() => CreateInstance(IPhysicalProjectTreeFactory.Create(), SVsServiceProviderFactory.Create(), ConfiguredProjectFactory.Create(), null)); }
public void Constructor() { Assert.Throws <ArgumentNullException>(() => new SourceItemHandler(UnconfiguredProjectFactory.Create(), null)); Assert.Throws <ArgumentNullException>(() => new SourceItemHandler(null, IPhysicalProjectTreeFactory.Create())); new SourceItemHandler(UnconfiguredProjectFactory.Create(), IPhysicalProjectTreeFactory.Create()); }