KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > scriptella > configuration > DialectBasedContentElTest


1 /*
2  * Copyright 2006-2007 The Scriptella Project Team.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package scriptella.configuration;
17
18 import scriptella.AbstractTestCase;
19 import scriptella.spi.DialectIdentifier;
20
21 import java.util.List JavaDoc;
22 import java.util.regex.Pattern JavaDoc;
23
24 /**
25  * Tests for {@link DialectBasedContentEl} class.
26  *
27  * @author Fyodor Kupolov
28  * @version 1.0
29  */

30 public class DialectBasedContentElTest extends AbstractTestCase {
31
32     /**
33      * Tests handling of mixed dialogs content.
34      */

35     public void test() {
36         String JavaDoc xml = "<query>" +
37                 " \nDef1<!--Comment -->De<!--Comment2-->f2\n" +
38                 "<dialect name=\"d1\">D<!--Comment-->1</dialect>" +
39                 "<![CDATA[De]]>f3" +
40                 "<dialect name=\"d2\"><!--Commend-->D2</dialect>" +
41                 "<!--Comment-->\nDef4<!--Comment--> " +
42                 "</query>";
43         XmlElement xmlElement = XmlElementTest.asElement(xml);
44         DialectBasedContentEl d = new DialectBasedContentEl(xmlElement);
45         List JavaDoc<DialectBasedContentEl.Dialect> dialects = d.getDialects();
46         assertEquals(5, dialects.size());
47         DialectBasedContentEl.Dialect dialect = dialects.get(0);
48         assertEquals(" \nDef1Def2\n", asString(dialect.getContentEl()));
49         dialect = dialects.get(1);
50         assertEquals("D1", asString(dialect.getContentEl()));
51         assertTrue(dialect.getName().matcher("d1").matches());
52         dialect = dialects.get(2);
53         assertEquals("Def3", asString(dialect.getContentEl()));
54         assertNull(dialect.getName());
55         dialect = dialects.get(3);
56         assertEquals("D2", asString(dialect.getContentEl()));
57         assertTrue(dialect.getName().matcher("d2").matches());
58         dialect = dialects.get(4);
59         assertEquals("\nDef4 ", asString(dialect.getContentEl()));
60         assertNull(dialect.getName());
61
62         //Now check if dialects are searched correctly
63
assertEquals(" \nDef1Def2\nDef3\nDef4 ", asString(d.getContent(null)));
64         assertEquals(" \nDef1Def2\nDef3\nDef4 ", asString(d.getContent(new DialectIdentifier("XDialect", "0.0"))));
65         assertEquals(" \nDef1Def2\nD1Def3\nDef4 ", asString(d.getContent(new DialectIdentifier("d1", "1.0"))));
66         assertEquals(" \nDef1Def2\nDef3D2\nDef4 ", asString(d.getContent(new DialectIdentifier("d2", "1.0"))));
67     }
68
69     /**
70      * Tests {@link scriptella.configuration.DialectBasedContentEl.Dialect} class.
71      */

72     public void testDialect() {
73         DialectBasedContentEl.Dialect d = new DialectBasedContentEl.Dialect();
74         //null dialect should be matched
75
assertTrue(d.matches(null));
76         assertTrue(d.matches(DialectIdentifier.NULL_DIALECT));
77         d.setName(Pattern.compile(".*"));
78         assertTrue(d.matches(DialectIdentifier.NULL_DIALECT));
79         d.setName(Pattern.compile("dl"));
80         assertFalse(d.matches(DialectIdentifier.NULL_DIALECT));
81     }
82
83 }
84
Popular Tags