示例#1
0
        public void TestPluralVariantsByType()
        {
            MessageNode msg = MessagePatternUtil.BuildMessageNode(
                "{p,plural,a{A}other{O}=4{iv}b{B}other{U}=2{ii}}");
            ExpectMessageNode expect = new ExpectMessageNode().
                                       ExpectPluralArg("p").
                                       ExpectVariant("a").ExpectTextThatContains("A").FinishVariant().
                                       ExpectVariant("other").ExpectTextThatContains("O").FinishVariant().
                                       ExpectVariant("=4", 4).ExpectTextThatContains("iv").FinishVariant().
                                       ExpectVariant("b").ExpectTextThatContains("B").FinishVariant().
                                       ExpectVariant("other").ExpectTextThatContains("U").FinishVariant().
                                       ExpectVariant("=2", 2).ExpectTextThatContains("ii").FinishVariant().
                                       finishComplexArg();

            if (!expect.Matches(msg))
            {
                return;
            }
            List <VariantNode> numericVariants = new List <VariantNode>();
            List <VariantNode> keywordVariants = new List <VariantNode>();
            VariantNode        other           =
                ((ArgNode)msg.GetContents()[0]).ComplexStyle.
                GetVariantsByType(numericVariants, keywordVariants);

            assertEquals("'other' selector", "other", other.Selector);
            assertEquals("message string of first 'other'", "O", VariantText(other));

            assertEquals("numericVariants.size()", 2, numericVariants.Count);
            VariantNode v = numericVariants[0];

            assertEquals("numericVariants[0] selector", "=4", v.Selector);
            assertEquals("numericVariants[0] selector value", 4.0, v.SelectorValue);
            assertEquals("numericVariants[0] text", "iv", VariantText(v));
            v = numericVariants[1];
            assertEquals("numericVariants[1] selector", "=2", v.Selector);
            assertEquals("numericVariants[1] selector value", 2.0, v.SelectorValue);
            assertEquals("numericVariants[1] text", "ii", VariantText(v));

            assertEquals("keywordVariants.size()", 2, keywordVariants.Count);
            v = keywordVariants[0];
            assertEquals("keywordVariants[0] selector", "a", v.Selector);
            assertFalse("keywordVariants[0].isSelectorNumeric()", v.IsSelectorNumeric);
            assertEquals("keywordVariants[0] text", "A", VariantText(v));
            v = keywordVariants[1];
            assertEquals("keywordVariants[1] selector", "b", v.Selector);
            assertFalse("keywordVariants[1].isSelectorNumeric()", v.IsSelectorNumeric);
            assertEquals("keywordVariants[1] text", "B", VariantText(v));
        }
示例#2
0
        public void TestSelectVariantsByType()
        {
            MessageNode msg = MessagePatternUtil.BuildMessageNode(
                "{s,select,a{A}other{O}b{B}other{U}}");
            ExpectMessageNode expect = new ExpectMessageNode().
                                       ExpectSelectArg("s").
                                       ExpectVariant("a").ExpectTextThatContains("A").FinishVariant().
                                       ExpectVariant("other").ExpectTextThatContains("O").FinishVariant().
                                       ExpectVariant("b").ExpectTextThatContains("B").FinishVariant().
                                       ExpectVariant("other").ExpectTextThatContains("U").FinishVariant().
                                       finishComplexArg();

            if (!expect.Matches(msg))
            {
                return;
            }
            // Check that we can use numericVariants = null.
            IList <VariantNode> keywordVariants = new List <VariantNode>();
            VariantNode         other           =
                ((ArgNode)msg.GetContents()[0]).ComplexStyle.
                GetVariantsByType(null, keywordVariants);

            assertEquals("'other' selector", "other", other.Selector);
            assertEquals("message string of first 'other'", "O", VariantText(other));

            assertEquals("keywordVariants.size()", 2, keywordVariants.Count);
            VariantNode v = keywordVariants[0];

            assertEquals("keywordVariants[0] selector", "a", v.Selector);
            assertFalse("keywordVariants[0].isSelectorNumeric()", v.IsSelectorNumeric);
            assertEquals("keywordVariants[0] text", "A", VariantText(v));
            v = keywordVariants[1];
            assertEquals("keywordVariants[1] selector", "b", v.Selector);
            assertFalse("keywordVariants[1].isSelectorNumeric()", v.IsSelectorNumeric);
            assertEquals("keywordVariants[1] text", "B", VariantText(v));
        }