public void GetCategorizedTemplates_OneTemplateOneCategoryWithGroupConditionHavingMultipleParameterConditionsSeparatedByComma_TemplateFilteredUsingAllParametersInCondition() { CreateCategories("android", "app", "general"); CreateCategorizer(); SolutionTemplate template = AddTemplate("template-id", "android/app/general"); template.GroupId = "console"; template.Language = "C#"; template.Condition = "Device=MyDevice,SupportsSizeClasses=true"; ProjectCreateParameters parameters = CreateParameters("Device", "MyDevice"); parameters ["SupportsSizeClasses"] = true.ToString(); CategorizeTemplates(); TemplateCategory generalCategory = categorizedTemplates.First().Categories.First().Categories.First(); SolutionTemplate firstTemplate = generalCategory.Templates.FirstOrDefault(); SolutionTemplate matchedTemplate = firstTemplate.GetTemplate("C#", parameters); Assert.AreEqual(template, matchedTemplate); parameters = CreateParameters("Device", "MyDevice"); parameters ["SupportsSizeClasses"] = false.ToString(); SolutionTemplate noMatchedTemplate = firstTemplate.GetTemplate("C#", parameters); Assert.IsNull(noMatchedTemplate); }
public void GetCategorizedTemplates_TwoTemplatesWithGroupCondition_TemplateFilteredUsingTemplateParameters() { CreateCategories("android", "app", "general"); CreateCategorizer(); SolutionTemplate template1 = AddTemplate("template-id1", "android/app/general"); template1.GroupId = "console"; template1.Language = "C#"; template1.Condition = "Device=IPhone"; SolutionTemplate template2 = AddTemplate("template-id2", "android/app/general"); template2.GroupId = "console"; template2.Language = "C#"; template2.Condition = "Device=IPad"; ProjectCreateParameters parameters = CreateParameters("Device", "IPad"); CategorizeTemplates(); TemplateCategory generalCategory = categorizedTemplates.First().Categories.First().Categories.First(); SolutionTemplate firstTemplate = generalCategory.Templates.FirstOrDefault(); SolutionTemplate matchedTemplate = firstTemplate.GetTemplate("C#", parameters); parameters.Clear(); SolutionTemplate noMatchedTemplate = firstTemplate.GetTemplate("C#", parameters); Assert.AreEqual(template2, matchedTemplate); Assert.IsNull(noMatchedTemplate); }
public void GetCategorizedTemplates_TwoTemplatesWithGroupCondition_CanGetTemplateMatchingConditionFromAnyGroupedTemplate() { CreateCategories("android", "app", "general"); CreateCategorizer(); SolutionTemplate template1 = AddTemplate("template-id1", "android/app/general"); template1.GroupId = "console"; template1.Language = "C#"; template1.Condition = "Device=IPhone"; SolutionTemplate template2 = AddTemplate("template-id2", "android/app/general"); template2.GroupId = "console"; template2.Language = "C#"; template2.Condition = "Device=IPad"; ProjectCreateParameters ipadParameters = CreateParameters("Device", "IPad"); ProjectCreateParameters iphoneParameters = CreateParameters("Device", "IPhone"); CategorizeTemplates(); TemplateCategory generalCategory = categorizedTemplates.First().Categories.First().Categories.First(); SolutionTemplate firstTemplate = generalCategory.Templates.FirstOrDefault(); SolutionTemplate matchedIPadTemplate = firstTemplate.GetTemplate("C#", ipadParameters); SolutionTemplate matchedIPhoneTemplate = firstTemplate.GetTemplate("C#", iphoneParameters); Assert.AreEqual(template2, matchedIPadTemplate); Assert.AreEqual(template1, matchedIPhoneTemplate); Assert.AreEqual(template2, matchedIPadTemplate.GetTemplate("C#", ipadParameters)); Assert.AreEqual(template1, matchedIPadTemplate.GetTemplate("C#", iphoneParameters)); }
public void GetCategorizedTemplates_CategorizeTwoGroupedConsoleProjectTemplatesMultipleTimes_GroupedTemplatesDoesNotGrow() { CreateCategories("android", "app", "general"); CreateCategorizer(); SolutionTemplate template1 = AddTemplate("template-id1", "android/app/general"); template1.GroupId = "console"; template1.Language = "C#"; SolutionTemplate template2 = AddTemplate("template-id2", "android/app/general"); template2.GroupId = "console"; template2.Language = "F#"; CategorizeTemplates(); // Categorize the templates again after re-creating the categorizer but not // recreating the templates. CreateCategorizer(); CategorizeTemplates(); TemplateCategory generalCategory = categorizedTemplates.First().Categories.First().Categories.First(); SolutionTemplate template = generalCategory.Templates.FirstOrDefault(); int templateCount = 0; template.GetTemplate(t => { templateCount++; return(false); }); Assert.AreEqual(2, templateCount); }
public void GetCategorizedTemplates_OneTemplateOneCategoryWithGroupConditionAndParameterNameAndValueHaveDifferentCase_TemplateFilteredUsingTemplateParametersIgnoringCase() { CreateCategories("android", "app", "general"); CreateCategorizer(); SolutionTemplate template = AddTemplate("template-id", "android/app/general"); template.GroupId = "console"; template.Language = "C#"; template.Condition = "Device=MyDevice"; ProjectCreateParameters parameters = CreateParameters("device", "mydevice"); CategorizeTemplates(); TemplateCategory generalCategory = categorizedTemplates.First().Categories.First().Categories.First(); SolutionTemplate firstTemplate = generalCategory.Templates.FirstOrDefault(); SolutionTemplate matchedTemplate = firstTemplate.GetTemplate("C#", parameters); Assert.AreEqual(template, matchedTemplate); parameters = CreateParameters("device", "no-match"); SolutionTemplate noMatchedTemplate = firstTemplate.GetTemplate("C#", parameters); Assert.IsNull(noMatchedTemplate); }
public void GetCategorizedTemplates_OneTemplateOneCategoryWithGroupConditionAndParameterIsBoolean_TemplateFilteredUsingTemplateParameters() { CreateCategories("android", "app", "general"); CreateCategorizer(); SolutionTemplate template = AddTemplate("template-id", "android/app/general"); template.GroupId = "console"; template.Language = "C#"; template.Condition = "SupportsSizeClasses=True"; ProjectCreateParameters parameters = CreateParameters("SupportsSizeClasses", true.ToString()); CategorizeTemplates(); TemplateCategory generalCategory = categorizedTemplates.First().Categories.First().Categories.First(); SolutionTemplate firstTemplate = generalCategory.Templates.FirstOrDefault(); SolutionTemplate matchedTemplate = firstTemplate.GetTemplate("C#", parameters); Assert.AreEqual(template, matchedTemplate); parameters.Clear(); SolutionTemplate noMatchedTemplate = firstTemplate.GetTemplate("C#", parameters); Assert.IsNull(noMatchedTemplate); }
public void GetCategorizedTemplates_TwoConsoleProjectTemplatesWithDifferentLanguagesInSameCategory_TemplatesCombinedIntoOneGroup() { CreateCategories("android", "app", "general"); CreateCategorizer(); SolutionTemplate template1 = AddTemplate("template-id1", "android/app/general"); template1.GroupId = "console"; template1.Language = "C#"; SolutionTemplate template2 = AddTemplate("template-id2", "android/app/general"); template2.GroupId = "console"; template2.Language = "F#"; CategorizeTemplates(); TemplateCategory generalCategory = categorizedTemplates.First().Categories.First().Categories.First(); SolutionTemplate template = generalCategory.Templates.FirstOrDefault(); Assert.That(template.AvailableLanguages, Contains.Item("C#")); Assert.That(template.AvailableLanguages, Contains.Item("F#")); Assert.AreEqual(template1, template.GetTemplate("C#")); Assert.AreEqual(template2, template.GetTemplate("F#")); Assert.AreEqual(1, generalCategory.Templates.Count()); }
public void GetCategorizedTemplates_OneTemplateOneCategoryWithGroupConditionContainingExtraWhitespace_TemplateFilteredUsingTemplateParameters() { CreateCategories("android", "app", "general"); CreateCategorizer(); SolutionTemplate template = AddTemplate("template-id", "android/app/general"); template.GroupId = "console"; template.Language = "C#"; template.Condition = " Device = MyDevice "; ProjectCreateParameters parameters = CreateParameters("Device", "MyDevice"); CategorizeTemplates(); TemplateCategory generalCategory = categorizedTemplates.First().Categories.First().Categories.First(); SolutionTemplate firstTemplate = generalCategory.Templates.FirstOrDefault(); SolutionTemplate matchedTemplate = firstTemplate.GetTemplate("C#", parameters); Assert.AreEqual(template, matchedTemplate); }