Beispiel #1
0
        public void testBackRefMatcher()
        {
            NdnRegexBackrefManager backRef = new NdnRegexBackrefManager();
            NdnRegexBackrefMatcher cm      = new NdnRegexBackrefMatcher("(<a><b>)",
                                                                        backRef);

            backRef.pushRef(cm);
            cm.lateCompile();
            bool res = cm.match(new Name("/a/b/c"), 0, 2);

            Assert.AssertEquals(true, res);
            Assert.AssertEquals(2, cm.getMatchResult().Count);
            Assert.AssertEquals("a", cm.getMatchResult()[0].toEscapedString());
            Assert.AssertEquals("b", cm.getMatchResult()[1].toEscapedString());
            Assert.AssertEquals(1, backRef.size());

            backRef = new NdnRegexBackrefManager();
            cm      = new NdnRegexBackrefMatcher("(<a>(<b>))", backRef);
            backRef.pushRef(cm);
            cm.lateCompile();
            res = cm.match(new Name("/a/b/c"), 0, 2);
            Assert.AssertEquals(true, res);
            Assert.AssertEquals(2, cm.getMatchResult().Count);
            Assert.AssertEquals("a", cm.getMatchResult()[0].toEscapedString());
            Assert.AssertEquals("b", cm.getMatchResult()[1].toEscapedString());
            Assert.AssertEquals(2, backRef.size());
            Assert.AssertEquals("a", backRef.getBackref(0).getMatchResult()[0]
                                .toEscapedString());
            Assert.AssertEquals("b", backRef.getBackref(0).getMatchResult()[1]
                                .toEscapedString());
            Assert.AssertEquals("b", backRef.getBackref(1).getMatchResult()[0]
                                .toEscapedString());
        }
Beispiel #2
0
        public void testComponentMatcher()
        {
            NdnRegexBackrefManager   backRef = new NdnRegexBackrefManager();
            NdnRegexComponentMatcher cm      = new NdnRegexComponentMatcher("a", backRef);
            bool res = cm.match(new Name("/a/b/"), 0, 1);

            Assert.AssertEquals(true, res);
            Assert.AssertEquals(1, cm.getMatchResult().Count);
            Assert.AssertEquals("a", cm.getMatchResult()[0].toEscapedString());

            backRef = new NdnRegexBackrefManager();
            cm      = new NdnRegexComponentMatcher("a", backRef);
            res     = cm.match(new Name("/a/b/"), 1, 1);
            Assert.AssertEquals(false, res);
            Assert.AssertEquals(0, cm.getMatchResult().Count);

            backRef = new NdnRegexBackrefManager();
            cm      = new NdnRegexComponentMatcher("(c+)\\.(cd)", backRef);
            res     = cm.match(new Name("/ccc.cd/b/"), 0, 1);
            Assert.AssertEquals(true, res);
            Assert.AssertEquals(1, cm.getMatchResult().Count);
            Assert.AssertEquals("ccc.cd", cm.getMatchResult()[0].toEscapedString());

            Assert.AssertEquals(2, backRef.size());
            Assert.AssertEquals("ccc", backRef.getBackref(0).getMatchResult()[0]
                                .toEscapedString());
            Assert.AssertEquals("cd", backRef.getBackref(1).getMatchResult()[0]
                                .toEscapedString());
        }
Beispiel #3
0
        public void testBackRefMatcherAdvanced2()
        {
            NdnRegexBackrefManager     backRef = new NdnRegexBackrefManager();
            NdnRegexPatternListMatcher cm      = new NdnRegexPatternListMatcher(
                "(<a>(<b>))<c>", backRef);
            bool res = cm.match(new Name("/a/b/c"), 0, 3);

            Assert.AssertEquals(true, res);
            Assert.AssertEquals(3, cm.getMatchResult().Count);
            Assert.AssertEquals("a", cm.getMatchResult()[0].toEscapedString());
            Assert.AssertEquals("b", cm.getMatchResult()[1].toEscapedString());
            Assert.AssertEquals("c", cm.getMatchResult()[2].toEscapedString());
            Assert.AssertEquals(2, backRef.size());
            Assert.AssertEquals("a", backRef.getBackref(0).getMatchResult()[0]
                                .toEscapedString());
            Assert.AssertEquals("b", backRef.getBackref(0).getMatchResult()[1]
                                .toEscapedString());
            Assert.AssertEquals("b", backRef.getBackref(1).getMatchResult()[0]
                                .toEscapedString());
        }
Beispiel #4
0
        public void testBackRefMatcherAdvanced()
        {
            NdnRegexBackrefManager backRef = new NdnRegexBackrefManager();
            NdnRegexRepeatMatcher  cm      = new NdnRegexRepeatMatcher("([<a><b>])+",
                                                                       backRef, 10);
            bool res = cm.match(new Name("/a/b/c"), 0, 2);

            Assert.AssertEquals(true, res);
            Assert.AssertEquals(2, cm.getMatchResult().Count);
            Assert.AssertEquals("a", cm.getMatchResult()[0].toEscapedString());
            Assert.AssertEquals("b", cm.getMatchResult()[1].toEscapedString());
            Assert.AssertEquals(1, backRef.size());
            Assert.AssertEquals("b", backRef.getBackref(0).getMatchResult()[0]
                                .toEscapedString());
        }