Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #10
0
        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));
        }
Exemple #12
0
        internal AbstractFindByNameSpecialFileProvider CreateInstance(IProjectTree projectTree)
        {
            var physicalProjectTree = IPhysicalProjectTreeFactory.Create(currentTree: projectTree);

            return CreateInstance(physicalProjectTree);
        }
Exemple #13
0
        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));
        }
Exemple #15
0
        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());
 }