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 = GenerationFixture.Templates.FirstOrDefault(projectTemplateSelector); ProjectName = projectName; ProjectPath = Path.Combine(_fixture.TestProjectsPath, projectName, projectName); OutputPath = ProjectPath; var userSelection = await GenerationFixture.SetupProjectAsync(projectType, framework, language); if (getName != null) { GenerationFixture.AddItems(userSelection, GenerationFixture.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); // Clean if (cleanGeneration) { Fs.SafeDeleteDirectory(resultPath); } return(resultPath); }
protected async Task <(string ProjectPath, string ProjecName)> AssertGenerationOneByOneAsync(string itemName, string projectType, string framework, string itemId, string language, bool cleanGeneration = true) { await SetUpFixtureForTestingAsync(language); var projectTemplate = GenerationFixture.Templates.FirstOrDefault(t => t.GetTemplateType() == TemplateType.Project && t.GetProjectTypeList().Contains(projectType) && t.GetFrameworkList().Contains(framework)); var itemTemplate = GenerationFixture.Templates.FirstOrDefault(t => t.Identity == itemId); var finalName = itemTemplate.GetDefaultName(); var validators = new List <Validator> { new ReservedNamesValidator(), }; if (itemTemplate.GetItemNameEditable()) { validators.Add(new DefaultNamesValidator()); } finalName = Naming.Infer(finalName, validators); var projectName = $"{projectType}{framework}{finalName}"; ProjectName = projectName; ProjectPath = Path.Combine(_fixture.TestProjectsPath, projectName, projectName); OutputPath = ProjectPath; var userSelection = await GenerationFixture.SetupProjectAsync(projectType, framework, language); GenerationFixture.AddItem(userSelection, itemTemplate, GenerationFixture.GetDefaultName); 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); // Clean if (cleanGeneration) { Fs.SafeDeleteDirectory(resultPath); } return(resultPath, projectName); }
protected async Task <string> AssertGenerateRightClickAsync(string projectName, string projectType, string framework, string language, bool cleanGeneration = true) { await SetUpFixtureForTestingAsync(language); ProjectName = projectName; ProjectPath = Path.Combine(_fixture.TestNewItemPath, projectName, projectName); OutputPath = ProjectPath; var userSelection = await GenerationFixture.SetupProjectAsync(projectType, framework, language); await NewProjectGenController.Instance.UnsafeGenerateProjectAsync(userSelection); var emptyProject = Path.Combine(_fixture.TestNewItemPath, projectName); // Assert on project Assert.True(Directory.Exists(emptyProject)); int emptyProjecFileCount = Directory.GetFiles(emptyProject, "*.*", SearchOption.AllDirectories).Count(); Assert.True(emptyProjecFileCount > 2); // Add new items var rightClickTemplates = GenerationFixture.Templates.Where( t => (t.GetTemplateType() == TemplateType.Feature || t.GetTemplateType() == TemplateType.Page) && t.GetFrameworkList().Contains(framework) && !t.GetIsHidden() && t.GetRightClickEnabled()); foreach (var item in rightClickTemplates) { OutputPath = GenContext.GetTempGenerationPath(projectName); var newUserSelection = new UserSelection { ProjectType = projectType, Framework = framework, HomeName = "", Language = language, ItemGenerationType = ItemGenerationType.GenerateAndMerge }; GenerationFixture.AddItem(newUserSelection, item, GenerationFixture.GetDefaultName); await NewItemGenController.Instance.UnsafeGenerateNewItemAsync(item.GetTemplateType(), newUserSelection); NewItemGenController.Instance.UnsafeFinishGeneration(newUserSelection); } var finalProjectPath = Path.Combine(_fixture.TestNewItemPath, projectName); int finalProjectFileCount = Directory.GetFiles(finalProjectPath, "*.*", SearchOption.AllDirectories).Count(); Assert.True(finalProjectFileCount > emptyProjecFileCount); // Clean if (cleanGeneration) { Fs.SafeDeleteDirectory(finalProjectPath); } return(finalProjectPath); }