Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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());
        }
Esempio n. 8
0
        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);
        }