protected async Task <string> AssertGenerateProjectAsync(Func <ITemplateInfo, bool> projectTemplateSelector, string projectName, string projectType, string framework, string language, Func <ITemplateInfo, string> getName = null, bool cleanGeneration = true) { await SetUpFixtureForTestingAsync(language); var targetProjectTemplate = _fixture.Templates().FirstOrDefault(projectTemplateSelector); ProjectName = projectName; ProjectPath = Path.Combine(_fixture.TestProjectsPath, projectName, projectName); OutputPath = ProjectPath; var userSelection = _fixture.SetupProject(projectType, framework, language, getName); if (getName != null) { _fixture.AddItems(userSelection, _fixture.GetTemplates(framework), getName); } await NewProjectGenController.Instance.UnsafeGenerateProjectAsync(userSelection); var resultPath = Path.Combine(_fixture.TestProjectsPath, projectName); // Assert Assert.True(Directory.Exists(resultPath)); Assert.True(Directory.GetFiles(resultPath, "*.*", SearchOption.AllDirectories).Count() > 2); AssertCorrectProjectConfigInfo(projectType, framework); // Clean if (cleanGeneration) { Fs.SafeDeleteDirectory(resultPath); } return(resultPath); }
protected async Task <string> AssertGenerateRightClickAsync(string projectName, string projectType, string framework, string platform, string language, bool emptyProject, bool cleanGeneration = true) { BaseGenAndBuildFixture.SetCurrentLanguage(language); BaseGenAndBuildFixture.SetCurrentPlatform(platform); var path = Path.Combine(_fixture.TestNewItemPath, projectName, projectName); GenContext.Current = new FakeContextProvider { ProjectName = projectName, DestinationPath = path, GenerationOutputPath = path, }; var userSelection = _fixture.SetupProject(projectType, framework, platform, language); if (!emptyProject) { _fixture.AddItems(userSelection, _fixture.GetTemplates(framework, platform), BaseGenAndBuildFixture.GetDefaultName); } await NewProjectGenController.Instance.UnsafeGenerateProjectAsync(userSelection); var project = Path.Combine(_fixture.TestNewItemPath, projectName); // Assert on project Assert.True(Directory.Exists(project)); int emptyProjecFileCount = Directory.GetFiles(project, "*.*", SearchOption.AllDirectories).Count(); Assert.True(emptyProjecFileCount > 2); var rightClickTemplates = _fixture.Templates().Where( t => (t.GetTemplateType() == TemplateType.Feature || t.GetTemplateType() == TemplateType.Page) && t.GetFrameworkList().Contains(framework) && t.GetPlatform() == platform && !t.GetIsHidden() && t.GetRightClickEnabled()); await AddRightClickTemplatesAsync(path, rightClickTemplates, projectName, projectType, framework, platform, language); var finalProjectPath = Path.Combine(_fixture.TestNewItemPath, projectName); int finalProjectFileCount = Directory.GetFiles(finalProjectPath, "*.*", SearchOption.AllDirectories).Count(); if (emptyProject) { Assert.True(finalProjectFileCount > emptyProjecFileCount); } else { Assert.True(finalProjectFileCount == emptyProjecFileCount); } // Clean if (cleanGeneration) { Fs.SafeDeleteDirectory(finalProjectPath); } return(finalProjectPath); }